C语言学习day07:类型限定

2023-12-13 22:08:37

类型限定:

需要的限定符:

限定符

含义

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;
}

文章来源:https://blog.csdn.net/q13407441836/article/details/134939107
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。