【发布时间】:2012-11-25 06:14:32
【问题描述】:
来自 (6.2.2/7) C99 标准部分
7.如果在翻译单元中,相同的标识符出现 无论是内部链接还是外部链接,行为都是未定义的。
虽然由于定义冲突,以下会产生编译时错误
// 'x' has external linkage
extern int x;
// Here, 'x' has internal linkage
static int x;
但以下编译正常,
// 'x' has external linkage
extern int x;
void foo() {
// Here, 'x' has internal linkage
static int x;
}
这两种情况都会调用未定义的行为吗?
【问题讨论】:
标签: c c99 undefined-behavior linkage