1.const是常量的意思(其实还是变量),使用const修饰的变量将不能进行修改(C中其实是可以通过指针进行修改的,只是不能通过赋值修改),例如const int a = 10;
2.static是静态变量的意思,使用static修饰的变量要分成几种情况,第一种情况是将static变量定义在函数内部,那么这个变量将一直存在静态存储区中,下次函数进入的时候继续使用,而不会被编译器在函数退出的时候回收掉。第二种情况是将static放在全局,那么这个变量将只能被这个文件所调用,不能通过extern被其他的文件所引用。第三种情况是使用static定义函数,同理,这个函数也不能通过extern关键字被其他文件调用,只能被本文件的其他函数调用。
3.extern是引用非本文件定义的全局变量或者函数的关键字(但是不建议这样使用,影响了整个工程代码模块的封装,一般还是通过函数调用取到想要的数据,函数通过头文件声明接口)
4.volatile是容易改变的意思,volatile所代表的地址数据,是不仅可以被程序员通过软件修改而且可以被硬件所改变的(最常遇到和使用的,就是定义硬件寄存器地址)。
大致就这样,不完善的知识,请补充~
1.const是常量的意思(其实还是变量),使用const修饰的变量将不能进行修改(C中其实是可以通过指针进行修改的,只是不能通过赋值修改),例如const int a = 10;
2.static是静态变量的意思,使用static修饰的变量要分成几种情况,第一种情况是将static变量定义在函数内部,那么这个变量将一直存在静态存储区中,下次函数进入的时候继续使用,而不会被编译器在函数退出的时候回收掉。第二种情况是将static放在全局,那么这个变量将只能被这个文件所调用,不能通过extern被其他的文件所引用。第三种情况是使用static定义函数,同理,这个函数也不能通过extern关键字被其他文件调用,只能被本文件的其他函数调用。
3.extern是引用非本文件定义的全局变量或者函数的关键字(但是不建议这样使用,影响了整个工程代码模块的封装,一般还是通过函数调用取到想要的数据,函数通过头文件声明接口)
4.volatile是容易改变的意思,volatile所代表的地址数据,是不仅可以被程序员通过软件修改而且可以被硬件所改变的(最常遇到和使用的,就是定义硬件寄存器地址)。
大致就这样,不完善的知识,请补充~
extern必须用,定义的外部变量,来调用
其余两个意义不大。
volatile 更多的是告诉编译器,这个类型的变量不要被优化,,
他们的使用场合是怎样的呢?
extern 在本.C中定义,还是引用页.c中用 extern
extern只能用来声明,不能用来定义,楼上小陀螺已经总结的很全面了。
1.在引用的那个.c中extern
2.这样做是为了节省RAM,将不需要改变的数据放在flash中。
一周热门 更多>