【发布时间】:2019-01-16 13:44:38
【问题描述】:
为什么下面的代码可以工作 -
extern int i;
main()
{
int i = 10;
printf("%d", i);
}
但这个没有 -
main()
{
extern int i;
int i = 10;
printf("%d", i);
}
【问题讨论】:
-
第一种情况,有2个
i变量,一个是局部的,一个是全局的。您不能在本地范围内使用extern。重点是:你想实现什么。 -
错误的思维方式:C 语言是由规范(阅读n1570)定义的,而不是由计算机上特定编译器的行为定义的。害怕undefined behavior
-
这里的未定义行为在哪里?