我有兩個文件:如何在extern變量在其他文件中聲明不同時使g ++生成警告?
a.cpp
#include <iostream>
using namespace std;
int a[100];
int main() {
cout << "Hello World" << endl;
}
b.cpp
#include <iostream>
using namespace std;
extern double a[50];
顯然有 「一」 的兩個文件有衝突的聲明。但是當我運行時
g++ a.cpp b.cpp
編譯靜靜地成功。
有什麼辦法可以讓g ++抱怨衝突(無論是通過警告還是錯誤)?
我試過了-Wshadow和-Wshadow-all標誌。他們沒有幫助。
你試過-Wshadow? –
另外,加上'-Wshadow = global','local'或'compatible-local',所以你可以根據需要對其進行微調。不過,不要全局使用名稱空間。或者一般來說,理想情況下。 –