1.关键字typedef
typesef的功能是对一个类型进行重定义,也可以说是将类型的名称简化,如下图所示
若此工程中需重复使用unsigned int,一直将unsigned int作为类型的名称就会比较麻烦,所以将unsigned int重定义或者说重命名为u_int,就会省去一些不必要的麻烦。
2.关键字static
static——静态的
关于static,有三种用法
(1)修饰局部变量
(2)修饰全局变量
(3)修饰函数
下面一一进行讲解
修饰局部变量
如下图,函数输出的结果为5个1,跳出函数时,a的生命周期结束。所以每次进入函数时,a都重新被赋值为1,故每次的打印结果都为1,直到循环结束。
在int a之前加上static之后,局部变量a的生命周期变长,使a的值得到保留,在下次进入循环时继续使用,所以打印的结果是12345。而在本质上是改变了变量的存储类型,使原本存放在栈区的局部变量存放入静态区。
修饰全局变量
此时全局变量可在整个工程使用
当在全局变量前加上static后,该全局变量只能在该源文件内部使用,其他源文件不能使用
全局变量之所以能在其他源文件中被使用,是因为具有外部连接属性,而static修饰后,使其变成了内部链接属性,导致其只能在源文件内部使用。
修饰函数
static修饰函数与修饰全局变量一样,都是将其由外部连接属性变成了内部链接属性,使其只能在源文件内部使用。
以上就是个人对关键字typedef和static的一些初级见解。