C++ 为什么从C+;中的其他文件中使用全局变量时,需要extern来正向声明全局变量,而函数不需要extern+;
据我所知,全局非常量变量和函数默认都有外部链接。因此,在转发声明的帮助下,它们可以从其他文件中使用。例如:C++ 为什么从C+;中的其他文件中使用全局变量时,需要extern来正向声明全局变量,而函数不需要extern+;,c++,global-variables,extern,linkage,C++,Global Variables,Extern,Linkage,据我所知,全局非常量变量和函数默认都有外部链接。因此,在转发声明的帮助下,它们可以从其他文件中使用。例如: int myNum{888}; int getAnInt() { 返回999; } #包括 extern int myNum;//“extern”关键字是必需的。 int getanit();//“extern”关键字不是必需的。 int main() { std::cout因为 int getAnInt(); 及 即括号本身,因此不需要像extern这样的标记来区分两者 特别是
int myNum{888};
int getAnInt()
{
返回999;
}
#包括
extern int myNum;//“extern”关键字是必需的。
int getanit();//“extern”关键字不是必需的。
int main()
{
std::cout因为
int getAnInt();
及
即括号本身,因此不需要像extern
这样的标记来区分两者
特别是,前者是一个声明,它只声明getanit
存在并返回int
等,而后者给出它的定义。因为extern
将变量定义转换为声明,而int getanit();
已经是一个声明。您可以有多个声明(只要它们相同),但每个实体只有一个定义。
int getAnInt();
int getAnInt() { ... }