深度解析c语言中的关键字
2016-05-10 23:09
204 查看
关键字:
<1>.
volatile:防止编译器对代码进行优化,保证内存的可见性。
编译器优化的方法有:将内存变量缓存到寄存器;
故volatile定义的变量会在程序外被改变,每次都必须从内存中读取,而不能重复使用放在寄存器中的备份。
例如:
<2>.
static:修饰局部变量---->改变的是存储类型(由栈区到静态区)
影响生命周期,作用域不改变。
程序的整个执行期间一直存在,创建到文件结束才毁。
修饰全局变量---->改变的是链接属性,只能在当前源文件使用。
从external改为internal。
存储类型和作用域不改变。
修饰函数---->只能在当前源文件使用。
<1>.
volatile:防止编译器对代码进行优化,保证内存的可见性。
编译器优化的方法有:将内存变量缓存到寄存器;
故volatile定义的变量会在程序外被改变,每次都必须从内存中读取,而不能重复使用放在寄存器中的备份。
例如:
<2>.
static:修饰局部变量---->改变的是存储类型(由栈区到静态区)
影响生命周期,作用域不改变。
程序的整个执行期间一直存在,创建到文件结束才毁。
修饰全局变量---->改变的是链接属性,只能在当前源文件使用。
从external改为internal。
存储类型和作用域不改变。
修饰函数---->只能在当前源文件使用。