一,一些常见的关键字
void 无
static 静态的
unsigned 无符号
union 联合体
需要注意的是:define 以及 include 等均不属于关键字,他们属于预处理指令
二,关键字 typedef
typedef 关键字的意义是重新定义数据类型
如上图所示:由于unsigned int 这个类型定义太长了,避免数据冗余,我将其定义为 t_int 。
三,关键字 static
3.1 static 关键字对于变量的修饰
首先是局部变量。在局部变量前面加上static之后,更改了它的局部变量属性,变成了全局变量。更改了它的生命周期,将它本来存在于栈内存的局部变量属性变成了放在静态区的全局变量的属性。如下图所示:
此时输出的结果如上图所示为 11 12 13 14 15 。是因为static改变了a的局部变量属性以及生命周期,导致a出了自己本来的函数 num()生命周期外,依然可以在所在的 .C 文件中其他函数中使用。
3.2 static对于全局变量以及函数的修饰
全局变量以及函数本来是有一个外部链接属性的,一旦用static修饰了之后,就变成了内部链接属性。就导致其在一个工程下的不同 .C 文件中无法使用。如下图所示
用static修饰了之后,整个程序是错误的。
四,关键字 extern 声明
extern关键字的意义是申明。由于有一些函数或者全局变量在其他源文件已经定义了,故需要在本源文件的开头声明 该函数或者全局变量。