馈赠20钱求讲const、static、extern、volatile用法! 请大神讲一下他们的区别和用法!!

2019-07-21 07:54发布

const、static、extern、volatile  他们在程序当中很常见,时常读代码的时候百度一下功能,但是总感觉他们好像有重叠的地方,
哪个大神程序写的好,能直接讲一下他们的用法,和区别是什么样的吗?

可以用例子简洁的说下,谢谢了!  



.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
17条回答
小陀螺爱炒蛋
2019-07-21 10:47
本帖最后由 小陀螺爱炒蛋 于 2016-11-8 16:59 编辑

1.const是常量的意思(其实还是变量),使用const修饰的变量将不能进行修改(C中其实是可以通过指针进行修改的,只是不能通过赋值修改),例如const int a = 10;
2.static是静态变量的意思,使用static修饰的变量要分成几种情况,第一种情况是将static变量定义在函数内部,那么这个变量将一直存在静态存储区中,下次函数进入的时候继续使用,而不会被编译器在函数退出的时候回收掉。第二种情况是将static放在全局,那么这个变量将只能被这个文件所调用,不能通过extern被其他的文件所引用。第三种情况是使用static定义函数,同理,这个函数也不能通过extern关键字被其他文件调用,只能被本文件的其他函数调用。
3.extern是引用非本文件定义的全局变量或者函数的关键字(但是不建议这样使用,影响了整个工程代码模块的封装,一般还是通过函数调用取到想要的数据,函数通过头文件声明接口)
4.volatile是容易改变的意思,volatile所代表的地址数据,是不仅可以被程序员通过软件修改而且可以被硬件所改变的(最常遇到和使用的,就是定义硬件寄存器地址)。
大致就这样,不完善的知识,请补充~

一周热门 更多>