我尝试了下面的代码,并得到了一个错误。
int main()
{
//this will cause redefinition error
extern int x;
int x=2;
}我见过一些关于外行的答案,比如
得到了一个概念,但我仍然想知道编译器在这种情况下是做什么的。外挂可以在某种功能内使用(合法)吗?
最新情况:
更具体地说,既然extern int x只是一个声明,为什么我不能定义int呢?编译器是否将extern int x作为定义?
发布于 2017-01-17 17:50:42
但我仍然想知道编译器在这种情况下是做什么的。外挂可以在某种功能内使用(合法)吗?
它可以,但不能像在代码中那样重新声明变量。因此,这是一个有效的例子:
int main()
{
//this will cause redefinition error
extern int x;
x=2;
}
int x; 发布于 2017-01-17 17:50:03
当然可以使用它,不要在函数中定义另一个x:
int main()
{
extern int x;
x=2;
}https://stackoverflow.com/questions/41703694
复制相似问题