• auto register volatile 比较总结


    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>

  • 相关阅读:
    A1083. List Grades
    A1075. PAT Judge
    uva 10054 The Necklace 欧拉回路
    uva 1423 / Guess
    poj3164 最小树形图
    uva 11865 stream my contest 最小树形图 朱刘算法
    uva 1494
    获取android源码中遇到的问题
    MTK平台Android项目APK预置方案
    Android Lights
  • 原文地址:https://www.cnblogs.com/titer1/p/2385063.html
Copyright © 2020-2023  润新知