zoukankan      html  css  js  c++  java
  • 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>

  • 相关阅读:
    02.v-on的事件修饰符
    01.Vue的系统指令
    00-Vue的介绍和vue-cli
    vs code快捷键
    分库分表之后,主键的处理方法
    动态扩容分库分表
    前端web通过flask操作数据库-增删改查
    mysql组复制集群简介
    vsftp进阶-锁定目录
    kvm克隆
  • 原文地址:https://www.cnblogs.com/titer1/p/2385063.html
Copyright © 2011-2022 走看看