您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页volatile用法详解(c语言)

volatile用法详解(c语言)

来源:叨叨游戏网

前言

volatile是易变的、不稳定的意思。或许你没见过这个关键字,但它的的确确存在着。

volatile作用

#include <stdio.h>
int pass = 1;
int main()
{
	while(pass)
	{
		;
	} 	
	return 0;
}

思考一下,以上代码有哪些可优化的地方?
由于pass = 1,为真,编译器会优化此代码,将循环条件直接改为真,后续不再从内存中读取pass的值来判断循环是否停止。

汇编代码如下:

volatile

#include <stdio.h>
volatile int pass = 1; //加上volatile
int main()
{
	while (pass) {
	;
	} 
	return 0;
}

汇编如下:

结论

volatile忽略编译器的优化,保持内存可见性。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务