【发布时间】:2019-10-26 06:18:59
【问题描述】:
我已经阅读了很多关于外部变量的信息,但似乎没有人能够适当地解决它。如果我在 C 中声明和定义一个变量,它会在文件的该范围内分配内存。但在多文件模块化项目的后期阶段,该变量被声明为外部,应将其存储在数据段中,以展示外部功能预期的全局行为。
所以我试图弄清楚内存是如何以及何时分配的,即 extern 变量的编译时间和运行时间行为。
【问题讨论】:
-
请显示与相关变量相关的代码。在函数中分配的变量不是文件范围。
-
你不要
extern函数局部变量。 -
外部变量需要是全局变量。链接器安排所有目标文件连接到变量的同一内存位置,就像它为函数所做的那样。
-
谢谢大家,@Barmar 的解释增加了你的解释
标签: c compilation runtime extern compile-time