以下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