2_C语言中的数据类型 (七)类型限定

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 = 100;//告诉编译器,不要自作聪明的给我针对这个变量优化代码
    i = i + 5;
    //外部设备改了i的值,
    i = i + 10;
    i = i + 30;
    //i = i + 45;

    printf("%d
", i);

    return 0;
}

int main()
{
    register int i;//变量i不是在内存里面,变量i就是在CPU的寄存器里面的
    i = 100;
    i = i + 50;
    i = i + 20;

    /*

    __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
", i);
}

 资料来源:传智播客 仅供学习研究

原文地址:https://www.cnblogs.com/wuchuanying/p/6298387.html