C++ extern关键字

浏览:834 发布日期:2023-03-30 14:28:09

C++ extern关键字

extern表示引用变量。

假设h1.h定义了如下语句:

int a = 33;
extern int a;

这是声明了全局变量a,至少要在其他文件定义一次,否则无法使用。

test.cpp文件如下定义:

int main()
{
    //a = 14;
    cout << a << endl;

    cin.get();
    return 0;
}

a = 33

如果h1.h只有声明语句:

extern int a;

test.cpp文件如下定义:

int main()
{
    a = 14;
    cout << a << endl;

    cin.get();
    return 0;
}

那么将报错,因为无法访问a变量,h1.h仅是声明了导出变量a。我们必须在其他地方对其进行赋值。

比如:cx.cpp

extern int a = 55;

需要注意的是,对extern变量只能赋值一次。

静态内部链接变量

如果定义一个静态的文件级变量,那么它将隐藏全局变量:

static int a = 555;

int main()
{
    extern int a;

    cout << a << endl;

    cin.get();
    return 0;
}

const变量

C++中,const变量默认链接性为内部。这与C不同。

若要将其变为外部链接,可以使用extern关键字。