C++中定义变量的时候用extern有什么用?

2025-03-13 01:24:25
推荐回答(2个)
回答1:

extern:这是外部关键字。
extern可以置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。
如:你在文件a中定义了int i;
但你在文件b中需要用到文件a中的变量i,这时你在使用变量i之前就需要用extern int i来指定说明这是一个外部变量,这时编译器就会去其它文件中查找。(注意,这个外部变量要是在同一个工程下的不同文件下,才能使用。如果是不同工程中的文件就不能这样引出来)。
外部函数也是这样来引用的,不同文件中的函数可以使用extern 关键字来引出,C++中函数默认都是外部函数,同一个工程下的不同文件中的函数也不能重名,因为C++默认函数定义时是外部的,当然可以在定义时改为内部,这样多个文件中的函数就不会影响。

但extern 还有另一个用处,那就是先使用后定义。如:你想使用变量i,但你不知道要在什么地方定义I,这时你就可以使用extern 这个关键字来达到先使用变量i,再定义变量i的目的。

回答2:

只有声明的意思,说明这个变量在别的地方已经定义过了。
一般是全局变量才会加这个声明,当然,他们是同一个变量。就好比:
1.cpp文件定义了一个int a,
2.cpp文件也定义了一个 int a。
这样他们就有可能重复定义,如果2.cpp中加上extern那么就知道2.cpp中的a在其他地方定义过了,和1.cpp是一个变量