类型限定:
需要的限定符:
限定符 | 含义 |
extern | 声明一个变量,extern声明的变量没有建立存储空间 |
const | 定义一个变量,常量的值不能修改const int a=10; |
volatile | 防止编译器优化代码 |
register | 防止寄存器变量,提高效率。register是建议型指令,而不是命令型的指令,如果CPU有空闲寄存器,那么register就生效,如果没有空闲寄存器,那么register无效 |
extern:
声明变量:告诉内存有那么一个变量,可能没使用,但是有那么一个变量
代码:
int main01()
{
//声明变量:告诉内存有那么一个变量,可能没使用,但是有那么一个变量
extern int a;
//定义+赋值
int a = 10;
return EXIT_SUCCESS;
}
const:
定义一个常量:常量的值不能修改
代码:
int main02() {
//定义一个常量:常量的值不能修改
const int a = 10;
return 0;
}
volatile:
防止编译器优化代码
举个例子:
假如有一个U盘,在里面我们写了个int a;
因为一个U盘,它的格式我们不确定
所以a没有赋值,编译器检测到后,可能直接删掉(优化掉);
a删掉后插进U盘中,a就不见了用不了了
代码:
int main03() {
//防止编译器优化代码
/*
假如有一个U盘,在里面我们写了个
int a;
a没有赋值,编译器检测到后,可能直接删掉(优化掉);
a删掉后插进U盘中,a就不见了用不了了
*/
volatile int a;
return 0;
}
register:
定义寄存器变量:提高效率
这是建议型指令,建议不使用,占用内存
int main04() {
//定义寄存器变量:提高效率
//这是建议型指令,建议不使用,占用内存
register int a;
return 0;
}