我对C ++中的编码风格有疑问。
我更喜欢在函数原型中明确使用void
。
然而,在阅读维基百科中有关void
type的文章时,我发现在函数原型中不提供任何参数是首选。
如果有特殊原因,我很好奇。
答案 0 :(得分:1)
什么是首选,什么是良好实践是完全不同的。我相信这只是程序员的选择。
答案 1 :(得分:1)
C ++在C之前有函数原型,C ++总是'所需的原型有效。因此,关于空括号(圆括号)没有问题或含糊不清,这意味着没有参数。
相比之下,C在C ++拥有它们之后很久就没有获得函数原型,并且它有一个遗留基础来处理。在引入函数原型之前,必须将具有非整数返回类型的C函数声明为:
double sin();
char *malloc(); /* There wasn't void * -- or C++ style // comments */
struct whatnot *new_whatnot();
C标准化委员会不能破坏所有现有的C代码;标准会失败。因此,C标准化者采用sometype function(void)
来明确表示没有参数'。到目前为止,sometype function()
表示'一个函数返回sometype
值,其中未定义(但不是可变)的未定义类型的参数数量为'。
因为C ++有空括号(空括号)表示法,所以不需要(void)
表示法,但是它被添加到C ++中以匹配C标准,并且更容易在标准C和标准C之间迁移代码C ++。
(void)
表示法,因为空括号表示完全不同的(并且相对不合需要)。(void)
表示法来确保两个编译器都看到相同的规范。