目录
前言
const
static
volatile
extern
总结
前言
C语言里面有许多关键字,本文结合我自己的了解简单讲讲几个常用关键字的作用。
const
问:const有什么用?
答:
const可以用来修饰变量,比如 const int a;那么变量a的值就会编译器强制保护,a的值无法被修改,此时变量a相当于一个常量const 可以用来修饰指针,比如const int *p;此处,p指向的int型数据被const保护,所以无法通过指针去修改这个int型数据又比如int * const p;此时p被const保护,p本身无法被修改
static
问:static有什么用?
答:
static可以用来修饰全局变量,改变它的作用域;怎么理解?
全局变量本来就是全局作用域,其他文件可以引用它(或者说其他文件可见),但是加上static之后它就变成了文件作用域,只有本文件可以引用它(只有本文件可见)。
static也可以用来修饰函数,作用同上static还可以用来修饰局部变量,改变它的生命周期,怎么理解?
局部变量本来就是自动存储期,存放在栈内存,当它退出代码块作用域后就会被释放;现在加上static之后,它就变成了了静态数据,存放在静态数据区(.data段);当程序结束之后它才会被释放;而且,它只会初始化一次。
volatile
问:volatile有什么用?
答:
volatile声明一个变量表示这个变量有可能会被意想不到地改变;所以它会告诉编译器:与这个变量有关的运算不要去做优化,每次使用这个变量的时候都要重新从内存中读取它的值,而不是直接使用寄存器里面的拷贝。
extern
问:extern有什么用?
答:
extern可以用来声明外部的变量或函数,如果这个变量或函数存在,那就可以引用它。extern c可以用来在c++代码中使用c代码,一般放在头文件中,它会告诉编译器:被extern c修饰的这段c代码请按照c语言的方式进行编译。
总结
本文仅仅简单介绍了几个c语言常用关键字的作用,结合作者本人的理解随便说说。