1.typedef 类型(重新)定义(或命名),可简化输入
如:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
typedef signed long long k;
int main()
{
k a = 0;
}
signed long long被简写为k这个别名,之后可用k直接定义变量,简化输入
2.static 静态
01.修饰局部变量
#include <stdio.h>
void test()// test函数没有返回值,用void
{
int a = 1;//创建变量
a++;
printf("%d", a);
}//销毁变量
int main()
{
int i = 0;
while (i < 5)
{
i++;
test();
}
return 0;
}
结果:22222
循环一次,test()执行一次,a从1变2
#include <stdio.h>
void test()// test函数没有返回值,用void
{
static int a = 1;//创建变量
a++;
printf("%d", a);
}//不会销毁变量
int main()
{
int i = 0;
while (i < 5)
{
i++;
test();
}
return 0;
}
结果:23456
int a=1;等价于auto int a=1;
static int a=1;修饰局部变量,a不会自动销毁,生命周期变长
总结:static修饰局部变量时改变了变量的存储类型,进而改变了局部变量的生命周期
补:内存的分区
02.修饰全局变量
未被修饰的全局变量:有外链接属性
static修饰全局变量(内部链接属性),该变量不能应用于整个工程,只能用于其所处的源文件
03.修饰函数
函数见第12篇
int Add(int x, int y)
{
int z = 0;
z = x + y;
return z;
}
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
extern int Add(int x,int y);
int main()
{
int num1 = 0;
int num2 = 0;
scanf("%d%d", &num1, &num2);
int sum = Add(num1, num2);
printf("%d\n", sum);
return 0;
}
正常运行
如果改为:
static int Add(int x, int y)
{
int z = 0;
z = x + y;
return z;
}
VS会报错
static修饰函数(导致函数的链接属性为内部),该函数不能应用于整个工程,只能用于其所处的源文件(类似02)