typedef类型重命名
#include<stdio.h>
typedef unsigned int u_int;//类型重命名
int main()
{
unsigned int num = 100;
u_int num2 = 100;
return 0;
}
static静态修饰变量
修饰局部变量
#include<stdio.h>
int main()
{
int i = 0;
while (i<10)
{
test();
i++;
}
return 0;
}
int test() {
int a = 1;
a++;
printf("%d\n",a);
}
没有添加static修饰
添加了static修饰
#define _CRT_SECURE_NO_WARNINGS 1;
#include<stdio.h>
int main()
{
static int i = 0;
while (i<10)
{
test();
i++;
}
return 0;
}
int test() {
int a = 1;
a++;
printf("%d\n",a);
}
结果:
说明:static修饰局部变量改变了局部变量的生命周期(本质上是改变了变量的存储类型)
修饰全局变量
无static修饰:结果输出为2022,正常
有static修饰:会报错无法解析的外部符号 _g_val,找不到全局变量g_val
原因:static修饰全局变量,使这个全局变量只能在自己的源文件(test.c)内部使用,其他源文件不能使用
static静态修饰方法
无static修饰的方法
有static修饰的方法
结果:报错
原因:static是将方法的外部链接属性变成了内部链接属性!(和static修饰全局变量一样)