C++ c语言中的Extern关键字问题
在这种情况下,即使变量I是在add函数中定义的,也会出现错误 但在以下情况下,它不会给出构建错误C++ c语言中的Extern关键字问题,c++,keyword,extern,C++,Keyword,Extern,在这种情况下,即使变量I是在add函数中定义的,也会出现错误 但在以下情况下,它不会给出构建错误 extern int i; void add(); int main() { add(); if (i == 0) printf("scope rules\n"); } void add() { int i; } extern关键字告诉编译器假定变量是在其他地方定义的,而不是在这个特定的文件或翻译单元中。变量的名称将在链接阶段解析 所以当你写作时: 外部
extern int i;
void add();
int main()
{
add();
if (i == 0)
printf("scope rules\n");
}
void add()
{
int i;
}
extern关键字告诉编译器假定变量是在其他地方定义的,而不是在这个特定的文件或翻译单元中。变量的名称将在链接阶段解析
所以当你写作时:
外部国际一级
您必须确保变量i是在其他文件的其他位置定义的
注意不要混淆add函数中的extern i和local i,这个局部变量在add函数中有作用域,与extern i变量无关
extern int i;
void add();
int main()
{
int i;
//add();
if (i == 0)
printf("scope rules\n");
}
void add(){
//int i;
}
你需要读一本关于C或C++的书,这将详细解释这个问题。
void add()
{
int i;
}