美文网首页
C++ extern

C++ extern

作者: D_Major | 来源:发表于2020-02-22 16:40 被阅读0次

    参考https://blog.csdn.net/a8039974/article/details/90697461
    https://www.cnblogs.com/lenmom/p/9199759.html

    定义与声明

    如果变量定义在函数内部,则分配在堆栈上; 如果是定义成全局变量,则分配在静态数据区。在一个程序中,变量只能定义一次,却可以声明多次。定义包含声明

    对于变量来说, int i既是声明也是定义, 会开辟内存空间赋随机值; extern int i只是声明, 不开辟内存空间. 当且仅当在函数外部时, extern才可以赋初值, 这样就成了定义, 会开辟内存空间. 如int i = 0extern int i = 0此时是等价的.
    对于函数来说, 没有{}就是声明, 有{}就是定义.

    不要把变量定义放入.h文件,这样容易导致重复定义错误。有三个例外,以下三种实体的定义也可放到头文件中。
    1.值在编译时就已知的const 变量的定义可以放到头文件中
    const int num = 10;
    2.类的定义可以放到头文件中
    3.inline 函数

    尽量使用static关键字把变量定义限制于该源文件作用域,除非变量被设计成全局的。

    对于头文件中声明的const变量, 若要在其他文件中使用, 声明和定义都要加extern.

    //file1.cpp定义并初始化和一个常量,该常量能被其他文件访问
    extern const int bufferSize = function();
    //file1.h头文件
    extern const int bufferSize; //与file1.cpp中定义的是同一个
    

    相关文章

      网友评论

          本文标题:C++ extern

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