此代碼沒有給我警告,當與g++
編譯:當我提供一個有符號的整數給只接受無符號整數的函數時,有沒有辦法讓GCC提醒我?
unsigned int myFunc(unsigned int integer) {
return integer;
}
int main() {
int x = -1;
std::cout << myFunc(x) << std::endl;
}
它編譯罰款,但結果是錯誤的:4294967295
。 GCC是否有任何編譯器-W*
選項?
可能的重複[爲什麼GCC在爲無符號類型分配簽名文字時會產生警告?](http://stackoverflow.com/questions/2771538/why-doesnt-gcc-produce-a-warning -when-assigning-a-signed-literal-to-an-unsigned) – user2485710
不要將C++問題標記爲C. – JBentley
現在這個問題明確地不是愚弄,因爲C標記已被刪除,另一個問題是隻有C,而另一個問題的答案在這裏不起作用。可以說,這個問題可能被標記爲這個我猜的愚蠢,因爲這裏的答案適用於C :-) –