标头 (.h) 文件中的 extern

问题描述

我很难理解 externs,我已经阅读了多种解决方案,但我仍然不理解它们背后的概念。 在被多次包含的头文件中,由于变量已被多次声明,因此拥有一个变量会导致错误。因此,不允许在 int x 文件中使用 .h。但是,允许使用 extern int x。我读过这是因为它还没有定义,只是声明了。因此,如果我要在函数中声明它,那么 x 不是函数的局部变量而不是全局作用域变量吗?

extern int x = 1 提供了一个错误,我假设是因为它定义了变量。但是, static int x = 1 不会给出错误,因为 static 不会在同一范围内声明第二次。这就引出了一个问题,如果 staticextern 都提供相同的结果,即一个共享的全局变量,声明一次,并且可以被 any 修改,那么静态变量和静态变量之间有什么区别?外部变量?我知道概念上的差异,它是静态的,只定义一次,但外部等待直到它在另一个 .cpp 文件中定义,但行为明智,它们的使用方式不是相同的吗?或者 extern 仅包含在包含它的文件中?

此外,如果稍后要定义一个 extern,那不是让 extern 变得无用吗?如果不能使用 extern 有什么好处?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...