【发布时间】:2013-06-24 14:00:56
【问题描述】:
这是一个理论问题: 假设我有 2 个源文件/编译单元,A.c 和 B.c
交流:
int x;
公元前:
int x;
变量 x 被认为是在对象之间共享的。也就是说,分配了一个 int 在某个地方,这个变量是全局的,对声明它的所有源文件都是可见的。
但是我也可以这样做: 公元前:
extern int x;
在这种情况下,外部变量和普通全局变量之间有什么区别吗? 一般有什么区别?
谢谢!!
【问题讨论】:
-
更多信息请参见What are extern variables in C?。您的 A.c 和 B.c 代码(
int x;两次)仅用作公共扩展(在 C 标准的附件 J 中得到认可)。带有extern int x;的变体符合标准的要求。