因此,我最近在 Hacker News 上阅读了一些关于函数指针的内容,并了解到它不是等效原型这一void foo()
事实void foo(void)
。所以,我着手确保这是真的:
int foo()
{
return 0;
}
int main()
{
return foo(1,2,3,4);
}
果然,这段代码编译时连警告都没有。因为这段代码会抛出错误:
int foo(void)
{
return 0;
}
int main()
{
return foo(1,2,3,4);
}
这似乎很容易出错。我还认为...
对于“任何数量的论点”,例如在printf
签名中
int printf ( const char * format, ... );
在 C89 或 K&R 中也是如此吗?任何人都可以深入了解此“功能”的用例吗?