1)          auto

auto变量就是局部变量,一般不用加auto。自动的意思是自动作用域,自动离开作用域。

2)          register

register变量是提示编译器尽量放在寄存器中保存,以增加

速度。

  • 只能定义局部的register变量,或者作为函数参数,没有全局或静态的。
  • 在C语言中,是不能对register变量取地址的,因为它没有虚地址,在寄存器里。而C++中,它是可以取址的,这时,C++编译器不会把它放到寄存器里。

(todo测试)

  • 一般不建议使用register,相信编译器能够做的更好。

3)          volatile

  • volatile变量

告诉编译器,别对这个变量做任何优化,因为它随时都会改变。

比如,多线程中,共同访问一个变量,如果编译器对其优化(放在寄存器中是优化的一种),第二次读时可能直接读寄存器中的值,而另外一个线程(或中断)改了变量,结果读出来的值是旧的。

它和const/register是类相反的,const是告诉编译器这是不可改变的,可以优化。而register直接告诉编译器将变量存入寄存器中。

源文档 <http://blog.csdn.net/yeming81/article/details/5637717>

转载于:https://www.cnblogs.com/titer1/archive/2012/03/08/2385063.html

auto register volatile 比较总结相关推荐

  1. C 中的auto register static extern的使用

    C 存储类 存储类定义C程序中变量或者函数的范围(可见性)和生命周期.这些说明符放置在他们所修饰的类型之前,C中有四个可以使用的存储类. 1 auto 存储类 auto存储类是所有的局部变量默认的存储 ...

  2. 存储类型auto,static,extern,register的区别

    变量和函数的属性包括数据类型和数据的存储类别,存储类别指数据在内存中存储方式(静态和动态),包含auto,static,register,extern四种. 内存中.具体点来说内存分为三块:静态区,堆 ...

  3. 存储类型auto,static,extern,register的区别 转

    变量和函数的属性包括数据类型和数据的存储类别,存储类别指数据在内存中存储方式(静态和动态),包含auto,static,register,extern四种. 内存中.具体点来说内存分为三块:静态区,堆 ...

  4. 自注册DM(六)中国电信自注册 CT Register 介绍和常见问题

    What is CT Register 1.电信自注册使用的app MTK平台默认使用的短信自注册是DeviceRegister 数据域自注册是SelfRegister 客户可以在项目查看到这两个ap ...

  5. 【超级经典】程序员装B指南(转)

    一.准备工作 "工欲善其事必先利其器." 1.电脑不一定要配置高,但是双屏是必须的,越大越好,能一个横屏一个竖屏更好.一个用来查资料,一个用来写代码.总之要显得信息量很大,效率很高 ...

  6. C++中的内存管理(new、delete、内存泄漏)

    1. 使用new动态分配内存:若没有足够内存,则new返回0(空值指针null pointer); 2. 不要使用delete释放不是new分配的内存,delete释放指针指向的内存,但不会删除指针本 ...

  7. 编译原理【实验1——扫描器的设计与实现】

    扫描器设计与编程实现(扫描器的设计与实现) NFA确定化算法设计与编程实现(NFA确定化(选做)) 递归下降分析器设计与实现(预测分析方法设计与实现) 算符优先分析法设计与实现(算符优先分析程序设计实 ...

  8. c语言中switch语句流程图_C语言:C语言保留字(关键字)

    保留字(reserved word) 保留字又称关键字. 指在高级语言中已经定义过的字,使用者不能再将这些字作为变量名或过程名使用. 每种程序设计语言都规定了自己的一套保留字. 例如:BASIC语言规 ...

  9. c语言常用符号与英文,C语言常用符号与英文(7页)-原创力文档

    C语言常用符号与英文 c语言的符号含义 main() {int w=4,x=3,y=2,z=1; printf("%d\n"): 优质解答 举例: a=1; b=2; a>b ...

最新文章

  1. 一致性hash算法_分布式寻址算法
  2. 规模、性能、弹性全面升级,让天下没有难用的 K8s
  3. 【JPA操作】CriteriaQuery多条件查询
  4. js 拉勾网效果_借助JShaman,建立自己的JS代码混淆平台
  5. Linux命令Man解释:useradd:帐号建立或更新
  6. Android Material Components – MaterialAlertDialog
  7. pytorch新手需要注意的隐晦操作Tensor,max,gather
  8. ReportMachine通过嵌套表达式计算某个值。
  9. python离线录音转文字软件_语音转文字工具(音频转文字助手)V2.1 最新版
  10. linux阿帕奇服务器配置方案,阿帕奇服务器_服务器配置方案_linux配置apache服务器...
  11. mysql异地容灾备份开启log_bin
  12. kotlin用it还是this?
  13. ZCU102开发板的时钟系统
  14. matlab sparse
  15. 1024-开启人工智能学习之旅
  16. 第十六章: 请多一点
  17. Go语言中的次方表示
  18. 数字货币stochRSI指标python计算实现
  19. 使用UltraISO制作ubuntu安装u盘启动盘图文教程
  20. 智能合约安全测试指南

热门文章

  1. MapString, Object map 集合转 json数组, json数组转list ,按条输出到es
  2. 聚类--K均值算法:自主实现与sklearn.cluster.KMeans调用
  3. win 7 DHCP获取不到ip的解决办法
  4. Docker容器固定IP分配
  5. 【Unity笔记】使用协程(Coroutine)异步加载场景
  6. 华尔街分析师点评NetApp转型战略
  7. php5.5.25升级到php5.6.30,加载yaf.so报错解决方法!
  8. SharpGL学习笔记(一) 平台构建与Opengl的hello World
  9. HDU2699+Easy
  10. 关于ExtJS3.0组件连接http://extjs.com/s.gif的问题