标签: c
0.c
extern int num; int main(){ return num; }
1.c
int num;
2.c
int num = 5;
上面用 gcc 0.c 1.c 2.c 编译得很好。为什么我在链接过程中没有收到 multiple definition 错误?
gcc 0.c 1.c 2.c
multiple definition
int num; 下的 1.c 不是完整定义吗?:
如果到达翻译单元的末尾并且没有出现带有标识符初始值设定项的定义,则暂定定义将成为完整定义。
或者这是未定义的行为?