一、typedef
顾名思义,类型定义,此处理解为类型重命名
使用:
typedef unsigned int uint;
int main()
{
uint a= 0;//等价于 unsigned int a = 0;
return 0;
}
二、static
static,静态的,是用来修饰变量和函数的
1.修饰局部变量——称为静态局部变量
2.修饰全局变量——称为静态全局变量
3.修饰函数——称为静态函数
1.修饰局部变量
举例:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void test()
{
int a = 1;
a++;
printf("%d ", a);
}
int main()
{
int i = 0;
while (i < 10)
{
test();
i++;
}
return 0;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void test()
{
static int a = 1;
a++;
printf("%d ", a);
}
int main()
{
int i = 0;
while (i < 10)
{
test();
i++;
}
return 0;
}
结论:
1.static修饰局部变量时,局部变量出了作用域,不销毁。本质上,static修饰局部变量时,改变了变量的存储位置。影响了变量的生命周期,变长,变得和程序的生命周期一样长。
2.修饰全局变量
全局变量具有外部链接属性。
编译+链接-->可执行程序
static修饰全局变量时,这个全局变量的外部链接属性变成了内部链接属性,其他源文件不能使用这个全局变量了。
3.修饰函数
函数具有外部链接属性,和修饰全局变量一样,就不展示了。