问题描述
我很难理解 externs,我已经阅读了多种解决方案,但我仍然不理解它们背后的概念。
在被多次包含的头文件中,由于变量已被多次声明,因此拥有一个变量会导致错误。因此,不允许在 int x
文件中使用 .h
。但是,允许使用 extern int x
。我读过这是因为它还没有定义,只是声明了。因此,如果我要在函数中声明它,那么 x
不是函数的局部变量而不是全局作用域变量吗?
extern int x = 1
提供了一个错误,我假设是因为它定义了变量。但是, static int x = 1
不会给出错误,因为 static 不会在同一范围内声明第二次。这就引出了一个问题,如果 static
和 extern
都提供相同的结果,即一个共享的全局变量,声明一次,并且可以被 any 修改,那么静态变量和静态变量之间有什么区别?外部变量?我知道概念上的差异,它是静态的,只定义一次,但外部等待直到它在另一个 .cpp
文件中定义,但行为明智,它们的使用方式不是相同的吗?或者 extern 仅包含在包含它的文件中?
此外,如果稍后要定义一个 extern,那不是让 extern 变得无用吗?如果不能使用 extern 有什么好处?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)