C语言系列:关键字(一)
前言
C语言标准中,最早有32个关键字。如下:
auto,break,case,char,const,continue,default,do,double,
else,enum,extern,float,for,goto,if,int,long,register,return,short,signed,sizeof,static,struct,switch,typedef,
union,unsigned,void,volatile,while。
下面分几节,讲讲常见的面试容易被问到的几个关键字。
一、static
static的作用:
修饰静态局部变量。改变了变量的存储方式,改变了变量的生命周期,但不改变它的作用域。static 变量只被初始化一次,下一次依据上一次的结果值。
修饰静态全局变量。静态全局变量限制了全局变量的作用域,只在定义该全局变量的源文件中有效,其他源文件不能引用它。
修饰静态函数。static 修饰的静态函数,只在定义它的源文件中有效,别的文件不能调用该函数。
二、extern
extern的作用:
修饰全局变量。改变变量的作用域,用extern修饰别的源文件中的全局变量,本文件也可以访问。
修饰函数。同全局变量类似,用extern修饰的函数,可以在别的源文件中访问。
extern “c” 。在c语言面试专题之编译中讲过,用来指定c++代码中的c代码的编译方式。
三、const
const的作用:
修饰常量,防止被修改。
修饰函数参数,表示函数调用时,参数的值不会被改变。
对于指针而言,可以指定指针本身为const,也可以指定指针所指的数据为const,举个例子,const int b = &a;或者int const b = &a;修饰的都是后面的值,分别代表*b和b不能改变。
四、volatile
概括来说,volatile的作用是防止编译器优化,保证每次访问的变量都从内存中读取,而不是从编译器优化后的缓存中读取。
扫描二维码关注博主公众号,了解更多。