关键字(2)
typedef--类型重定义(type define)
如 typedef unsigned int u_int;
u_int n=100;
与 unsigned int n=100; 效果一样 相当于给unsigned取了个别名
static(静态的)
1.static修饰局部变量
使局部变量不销毁,改变了其生命周期。(本质上是改变了变量的存储类型)
有关内存的存储区域
栈区 局部变量,函数的参数 |
堆区 动态内存分配 |
静态区 全局变量,static修饰的局部变量,静态变量 |
void test()
{
typedef int u;
static u a = 1;
a++;
printf("%d ", a);
}
int main()
{
typedef int u;
u i = 1;
while (i < 10)
{
test();
i++;
}
return 0;
}
打印结果是 2-10; static 修饰的局部变量会使其值不变。
2.static修饰的全局变量
使这个全局变量只能在自己所在的源文件(.c)内使用,其他源文件不可以使用!
原本全局变量具有外部连接属性,修饰后变为了内部链接属性。
3.static修饰函数
也是使函数只能在自己的源文件内使用
本质上:static修饰的函数的外部链接属性 变为了 内部链接属性