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

本文详细介绍了C语言中const、volatile及register这三个修饰符的作用与用法。const用于定义不可变常量;volatile用于标记可能被外部修改的变量,防止编译器优化;register则建议将变量存储在CPU寄存器中以提高访问速度。

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

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

转载于:https://www.cnblogs.com/wuchuanying/p/6298387.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值