以下test.c
程序爲什麼GCC針對未聲明的功能發出警告不一致?
int main() {
dummySum(1, 2);
return 0;
}
int dummySum(int a, int b) {
return a + b;
}
...當gcc -o test test.c
編譯,而下面的人做不產生任何警告:
int main() {
dummySum(1, 2);
return 0;
}
void dummySum(int a, int b) {
a + b;
}
爲什麼?
不是。我也是這麼想的。 'dummy'的'int'和'void'返回類型。 – mattjgalloway 2012-02-23 15:45:44
未聲明函數的默認返回類型是int。當你將它聲明爲void時,它找不到任何匹配的函數。我相信如果你使用更強的警告檢查(例如-Wall),你會在任何情況下都會收到警告。 – Joe 2012-02-23 15:46:02
在第一個帖子中是一樣的,你是對的。我編輯了這篇文章。對不起 – 2012-02-23 15:46:22