extern 关键字的使用,const引用, typedef名字, 枚举

    技术2022-05-19  21

     

    1.extern 关键字的使用

    1.1.将一个非const变量定义在一个文件中,假设已经做好了合适的声明,就可以在另外的文件中使用这个变量

    //file_1.cc int counter; //file_2.cc extern int counter; ++counter; 

    1.2.除非特别的说明,在全局作用域声明的const变量是定义该对象的文件的局部变量。通过制定const变量为extern,就可以在整个程 序中访问const对象。

    //file_1.cc extern const int buffsize = fcn(); //file_2.cc for(int index = 0; index!=buffsize; ++index) //.... 

    Note:非const变量默认为extern,要使const变量能够在其他的文件中访问,必须显示地指定他为extern

     

    2.const引用

    const引用可以初始化为不同类型的对象或者初始化为右值,如字面值常量

    int i = 42; const int &r = 42; const int &r2 = r + i; 

    同样的初始化对于非const引用却是不合法的,而且会导致编译错误。

    假如我们编写

    double dval = 3.14; const int &ri = dval; 编译器会把这些代码换成如下形式的编码: int temp = dval; // create temporary int from the double const int &ri = temp;// bind ri to that temporary 

     

    NOte:非const引用只能绑定到与该引用同类型的对象

    const引用则可以绑定到不同但相关类型的对象或绑定到右值

     

    3.typedef名字

    typedef名字可以用来类型的同义词

    typedef double wages; // wages is a synonym for double

    typedef定义以关键字typedef开始,后名师数据类型和标识符。

    4.枚举

    枚举的定义包括关键字enum,其后是一个可选的美剧类型名,和一个花括号括起来,用逗号分开的枚举成员列表

    enum open_mode(intput, output, append);

    1.枚举成员是常量

    2.每个enum都定义一种唯一的类型

    枚举类型的对象的初始化或赋值,只能通过其枚举成员或同一枚举类型的其他对象来进行

     


    最新回复(0)