c++中auto register static extern的用法都有什么区别?

最好有例子,详细一点,我理解能力很差。

前两个是用来修饰变量的,后两个都变量函数都可以

定义的变量默认是auto类型的
register 寄存器变量,老版的编译系统要手动设置,现在的新版的设定是:如果某个变量用的次数特多,就自动把他变成寄存器变量。寄存器变量运算速度快(因为是存放在CPU中运行的 ps:你应该知道CPU和内存的速度差别吧。如果这个不知道建议看看操作系统原理这类的书,还有以后要接触的多线程也会提到CPU和内存的速度差别)
Static是静态变量,定义时必须初始化,很特殊的一个函数,永远占用内存空间。个人感觉是这四个函数里最有用的一个,说不大细,建议多看看资料。
extern int a; 外部声明, 通常该变量在其他文件中定义, 在这里声明表示引用该变量

static 修饰函数为静态函数,本文件中可以使用
extern 外部声明, 改函数在其他地方有被定义过

不过貌似这几个东东没多大实用性。如果想深入了解建议看看吉林大学康辉老师讲的C,他的教程我记得说的很详细。
如果是参加比赛的准备的话,感觉这个出题的可能性不大,最近在准备3月份的全国比赛。这个连看也没看……
如果是初学者,直接pass掉就行了,真正写程序的时候除了static,其他的本人一次也没用过
温馨提示:内容为网友见解,仅供参考
无其他回答