[英]What if using extern declaration inside the function?
我尝试了以下代码,但出现错误。
int main()
{
//this will cause redefinition error
extern int x;
int x=2;
}
我已经看到了有关extern的一些答案,例如
有了一个概念,但是我仍然想知道在这种情况下编译器会做什么。 extern可以在某些函数内使用(合法)吗?
更新:
更具体地说,由于extern int x
只是一个声明,为什么不能定义int x? 编译器是否将extern int x
作为定义?
当然可以使用它,不要在函数内部定义另一个x
:
int main()
{
extern int x;
x=2;
}
但是我仍然想知道在这种情况下编译器会做什么。 extern可以在某些函数内使用(合法)吗?
可以,但是您不能像在代码中那样重新声明变量。 因此,这是一个有效的示例:
int main()
{
//this will cause redefinition error
extern int x;
x=2;
}
int x;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.