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);
}

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

2_C语言中的数据类型 (七)类型限定的更多相关文章

  1. 2_C语言中的数据类型 (七)printf与scanf

    1          字符串格式化输出和输入 1.1       字符串在计算机内部的存储方式 字符串是内存中一段连续的char空间,以’\0’结尾 “”是C语言表达字符串的方式 1.2       ...

  2. 2_C语言中的数据类型 (四)整数与无符号数

    1.1       sizeof关键字 sizeof是c语言关键字,功能是求指定数据类型在内存中的大小,单位:字节 sizeof与size_t类型 1.1       int类型 1.1.1      ...

  3. 2_C语言中的数据类型 (一)2.1.常量和字符串常量

    2.1 常量就是在程序中不可变化的量,常量在定义的时候必须给一个初值. 1.1.1          #define 定义一个宏常量 1.1.2          const 定义一个const常量 ...

  4. 2_C语言中的数据类型 (九)数组

    1          数组 1.1       一维数组定义与使用 int array[10];//定义一个一维数组,名字叫array,一共有10个元素,每个元素都是int类型的 array[0] = ...

  5. 2_C语言中的数据类型 (八)运算符

    1          运算符表达式和语句 1.1       基本运算符 1.1.1          = 数据对象:泛指数据在内存的存储区域 左值:表示可以被更改的数据对象 右值:能赋给左值的量 1 ...

  6. 2_C语言中的数据类型 (十)数组

    1          字符串与字符数组 1.1       字符数组定义 char array[100]; 1.2       字符数组初始化 char array[100] = {'a', 'b', ...

  7. 2_C语言中的数据类型 (九)逻辑运算符与if语句、switch、条件运算符?、goto语句与标号

    1          条件分支语句 1.1       关系运算符 在C语言中0代表false,非0代表真 1.1.1          < 小于 1.1.2          <= 小于 ...

  8. 2_C语言中的数据类型 (六)浮点数

    1.1       浮点float,double,long double类型 1.1.1          浮点常量,变量 Float在32位系统下是4个字节,double在32位系统下是8个字节 小 ...

  9. 2_C语言中的数据类型 (五)char

    1.1       char类型 1.1.1          char常量,变量 char c:定义一个char变量 ‘a’,char的常量 Char的本质就是一个整数,一个只有1个字节大小的整数 ...

随机推荐

  1. How To Change Log Rate Limiting In Linux

    By default in Linux there are a few different mechanisms in place that may rate limit logging. These ...

  2. 转:iBatis简单入门教程

    iBatis 简介: iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快.如果不需要太多复杂的功能,iBatis 是能够满足 ...

  3. 修改UIView的默认Layer后,修改View的值会动态修改Layer的值

    修改UIView的默认Layer后,修改View的值会动态修改Layer的值 效果图: 如上图所示,当我们修改了一个UIView的子类中的Layer内置类型时(如上图中我们将CALayer直接替换成了 ...

  4. Redis学习---Redis操作之Python连接

    PyCharm下的Redis连接 连接方式: 1. 操作模式 redis-py提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使 ...

  5. HTTP 错误 404.3 - Not Found的问题(WCF)

    模块 StaticFileModule 通知 ExecuteRequestHandler 处理程序 StaticFile 错误代码 0x80070032 请求的 URL http://10.101.3 ...

  6. November 18th 2016 Week 47th Friday

    Get a livelihood and then practise virtue. 先谋生,而后修身. If you can't earn a life, all the things you ha ...

  7. 转贴:C语言链表基本操作

    http://www.oschina.net/code/snippet_252667_27314#comments 这个代码有很多错误,估计是从老谭书上抄来但是很多还抄错了:对照老谭的书好好研究下.切 ...

  8. [转] pom.xml 配置详解

    From:http://blog.csdn.net/ithomer/article/details/9332071 Maven是一个项目管理工具,通过pom.xml来实现. pom.xml 配置文件 ...

  9. HNOI2018退役记

    不想记流水账了,总结一下考炸的原因吧.. $day1$: $12$点才知道$t3$怎么做. 可以用容斥+动态$dp$来搞,但是没时间写了. 事实上这个方法也比较复杂,标算比这优美多了. 所以还是想得太 ...

  10. Jinja2 简明使用手册

    @Jinja2 简明使用手册(转载) 介绍 Jinja是基于python的模板引擎,功能比较类似于于PHP的smarty,J2ee的Freemarker和velocity. 运行需求 Jinja2需要 ...