当一个C函数不接受任何参数时,根据语言规则,它是否必须使用“void”参数声明/定义?PC-Lint似乎在参数列表中没有任何内容时会出现问题,我想知道这是否与我不了解的语言语法有关。
编辑: 我刚刚找到了一个重复的问题,在“C void arguments”中有更多的答案和解释。
void表示函数不接受任何参数。例如:
int init (void)
{
return 1;
}
这不同于定义变量
int init ()
{
return 1;
}
因为在第二种情况下,编译器不会检查函数是否确实没有使用任何参数而被调用;相反,在没有任何警告的情况下,将接受带有任意数量参数的函数调用(这仅是为了与旧式函数定义语法(ANSI之前)兼容而实现的)。