欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

解释 C/C++ 中的 volatile 关键字 | 示例

最编程 2024-03-18 12:33:42
...
#include <stdio.h> void main() { int i = 10; int a = i; printf("i = %d", a); // 下面汇编语句的作用就是改变内存中 i 的值 // 但是又不让编译器知道 __asm { mov dword ptr [ebp-4], 20h } int b = i; printf("i = %d", b); }

然后,在 Debug 版本模式运行程序,输出结果如下:

i = 10
i = 32

然后,在 Release 版本模式运行程序,输出结果如下:

i = 10
i = 10

输出的结果明显表明,Release 模式下,编译器对代码进行了优化,第二次没有输出正确的 i 值。下面,我们把 i 的声明加上 volatile 关键字,看看有什么变化: