有人可以向我解释为什么下面的代码编译时没有警告或错误吗?
我希望编译器警告我该函数no_args
不期望任何争论。
但代码编译并运行功能no_args
递归地。
static void has_args(int a, int b, int c) {
printf("has_args\n");
}
static void no_args() {
printf("no_args\n");
no_args(1, 2, 3);
}
void main() {
no_args();
}
In C++, void no_args()
声明一个不带参数(并且不返回任何内容)的函数。
In C, void no_args()
声明一个函数,该函数接受未指定(但不是可变)数量的参数(并且不返回任何内容)。所以你所有的调用在 C 中都是有效的(根据原型)。
在C中,使用void no_args(void)
声明一个真正不带参数(并且不返回任何内容)的函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)