1.1 类型限定
1.1.1 const
const是代表一个不能改变值的常量
1.1.2 volatile
代表变量是一个可能被CPU指令之外的地方改变的,编译器就不会针对这个变量去优化目标代码。
1.1.3 register
变量在CPU寄存器里面,而不是在内存里面。但regist是建议型的指令,而不是命令型的指令
#include <stdio.h> int main01()
{
volatile int i = ;//告诉编译器,不要自作聪明的给我针对这个变量优化代码
i = i + ;
//外部设备改了i的值,
i = i + ;
i = i + ;
//i = i + 45; printf("%d\n", i); return ;
} int main()
{
register int i;//变量i不是在内存里面,变量i就是在CPU的寄存器里面的
i = ;
i = i + ;
i = i + ; /* __asm
{
mov i, 100
mov eax, i
add eax, 50
mov i, eax
mov eax, i
add eax, 20
mov i, eax
} __asm
{
mov eax, 100
add eax, 50
add eax, 20
} */ printf("%d\n", i);
}
资料来源:传智播客 仅供学习研究