美文网首页
c++ 1、修饰符

c++ 1、修饰符

作者: 八戒无戒 | 来源:发表于2020-04-25 22:27 被阅读0次
    • const: 声明指定类型的常量,被const 类型修饰对象在程序执行期间不能被修改改变。

    • volatile:告诉编译器不需要优化volatile声明的变量,让程序可以直接从内存读
      取变量(对于一般的变量编译器会对变量进行优化, 将内存中的变量值放在寄存器中以加快读写效率)。

    • auto: 声明变量时根据初始化表达式自动推断该变量的类型、声明函数时函数返回值的占位符,C++11中已删除该用法,只能修饰变量

    • register:寄存器变量,请求编译器将这个变量保存在CPU的寄存器中,从而加快程序的运行,被register修饰的变量不能够用&取址,并且被register修饰
      的变量不一定存储在寄存器中,这取决于硬件和实现的限制,只能修饰变量

    • static: 修饰局部变量时,在函数调用结束后不释放存储空间,再次调用函数时该变量已经有值,可以在函数调用之间保持局部变量的值。修饰全局变量
      或者函数时,会使变量的作用域限制在声明它的文件内

    • extern: 声明一个变量,extern放在变量或者函数之前,表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义,
      声明可以多次,但定义只能一次,可同时修饰变量和函数。extern 修饰符通常用于当有两个或多个文件共享相同的全局变量或函数的时候

    • thread_local:仅可在它在其上创建的线程上访问。 变量在创建线程时创建,并在销毁线程时销毁,可以与 static 或 extern 并用, 很少用到

    例如:

    main.cpp:
    
    #include "pch.h"
    #include<iostream>
    using namespace std;
    extern float calc_square(int r);    // 声明一个函数,可以在另一文件中定义,也可以在本文件中定义
    int main()
    {
        float square;
        auto r = 15;                   // auto自动识别变量类型
        square = calc_square(r);
        cout << "circle square=" << square << endl;
        return 0;
    }
    
    test.cpp中:
    
    #include "pch.h"
    #include<iostream>
    using namespace std;
    const static float PI = 3.14;       // static声明作用于仅限于本文件
    float calc_square(int r)
    {
        float square;
        square = PI * r * r;
        return square;
    }
    

    运行结果:


    运行结果.png

    相关文章

      网友评论

          本文标题:c++ 1、修饰符

          本文链接:https://www.haomeiwen.com/subject/ycplwhtx.html