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. Jquery的跨域调用

    JQuery1.2后getJSON方法支持跨域读取json数据,原理是利用一个叫做jsonp的概念.当然,究其本质还是通过script标签动态加载js,似乎这是实现真正跨域的唯一方法. getJSON ...

  2. Mysql5.7 的错误日志中最常见的note级别日志解释

          在使用mysql5.7的时候,发现了不少在mysql5.6上不曾见过的日志,级别为note, 最常见的note日志以下三种,下面我们来逐个解释. 第一种,Aborted connectio ...

  3. [swift] Async

    Async https://github.com/duemunk/Async Syntactic sugar in Swift for asynchronous dispatches in Grand ...

  4. Linux wc命令详解

    wc常见命令参数 wc -l : 统计行 wc -c: 统计字节数 wc -m:统计字符数,不能与-c同时使用 wc -w:统计字数 wc -L:打印最长长度 注意: wc 可以直接后面跟文件使用,但 ...

  5. [EffectiveC++]item43:学习处理模板化基类内的名称

  6. 【理解】 Error 10053和 Error 10054

    1. 10053 这个错误码的意思是:  A established connection was aborted by the software in your host machine, 一个已建 ...

  7. weblogic之CVE-2018-3246 XXE分析

    通过ftp通道将数据传出来.上传1.xml <!DOCTYPE xmlrootname [<!ENTITY % aaa SYSTEM "http://192.168.172.12 ...

  8. [翻译]怎么写一个React组件库(一)

    本文同步发布于知乎专栏 https://zhuanlan.zhihu.com/p/27401329,喜欢本文的就去知乎点个赞支持下吧- 引言 该系列文章将通过创建一个组件库来引导你学习如何构建自己的组 ...

  9. 8、Android---探究服务

    8.1.服务是什么 服务(Service)是Android中实现程序后台运行的解决方案 非常适合执行那些不需要和用户交互而且要求长期的任务 服务的运行不依赖于任何用户界面 即使程序被切换到后台 或者用 ...

  10. Jmeter不同线程组之间的变量引用

    用过LoadRunner的小伙伴应该知道,它的脚本主要分为三个部分,即Login,Action,End三个模块.Login中一般是“初始化”环境所用,而Action模块主要做一些诸如压测的动作.举个例 ...