從部分(6.2.2/7)C99標準這是否會在C中調用未定義的行爲?
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;
}
一舉兩得的情況下調用一個未定義的行爲?
感謝您指出。我想這就是你複製和粘貼東西時發生的事情:S – user963241