当C函数不接受任何参数时,是否必须通过语言规则使用“void”参数声明/定义它? 当参数列表中什么都没有时,PC-Lint似乎有问题,我想知道它是否是我不知道的语言语法中的东西。
修改:我刚发现了一个重复的(背面的?它首先出现)问题,C void arguments,它有更多的答案和解释。
答案 0 :(得分:34)
void表示该函数不接受任何参数。例如,
int init (void)
{
return 1;
}
这与定义
不同int init ()
{
return 1;
}
因为在第二种情况下,编译器不会检查函数是否真的被调用而根本没有参数; 相反,将接受具有任意数量参数的函数调用,而不会发出任何警告(这仅用于与旧式函数定义语法(ANSI之前的兼容性)实现)。
答案 1 :(得分:7)
根据Wikipedia这里,声明func()基本上声明了函数“没有关于参数的信息”。