auto ————自动的(省略掉了) //每个局部变量都是auto修饰的
extern————用来申明外部符号的
register————寄存器关键字:建议变量的值存放在寄存器中//寄存器的存取速度快
return————返回类型
static ————静态的
void————无,空
volatile
typedef————类型重命名
eg:typedef unsigned int u_int;
static ——静态的
栈区 | 局部变量、函数的变量 |
堆区 | 动态内存分配的 |
静态区 | 全局变量、static 修饰的、静态变量 |
void test() {
static int a = 1;//static修饰局部变量,改变了局部变量的生命周期(本质上改变了变量的存储类型)
a++;
printf("%d", a);
}
int main() {
int i = 0;
while (i<10)
{
test();
i++;
}
}
//static修饰全局变量使得这个全局变量只能在自己所在的(.c)内部使用
//全局变量,在其他源文件内部可以使用,是因为全局变量具有外部链接属性,但是被static修饰之后,就变成了内部链接属性
---------------------------------------------------------------------------------------------------------------------------------
define是一个预处理指令(定义符号)
1、define定义常量
2、define定义宏(只替换,不计算)