2016-10-11 21 views
0

有大量的帖子解释了为什么明确地做foo(void)foo()更好,因为它指定没有函数参数而不是未知量。定义和声明中的void函数参数?还是只有一个?

不过,我似乎无法找到,如果是把无效在头文件中的声明两个最佳实践源文件的定义,如:

foo.h中

void foo(void); 

foo.c的

void foo(void) 
{ 
    return; 
} 

OR


foo.h中

void foo(void); 

foo.c的

void foo() 
{ 
    return; 
} 

哪一个是更好的做法,是有什么具体原因做一在另一方面?

+0

主要基于意见。两者都是一样的。任何其他意见是错误的;-) – John3136

+2

@ John3136真的吗? “主要基于意见”?过去27年的标准明确表示不鼓励的标准和“可能考虑在未来修订中撤回”的内容不是意见问题。 – Art

回答

4

带空括号的旧式函数声明和定义是过时特征(N1570 6.11.6,6.11.7)。几乎没有任何好的理由来使用它们。

始终使用(void),而不是()

4

在特定情况下,它没有什么区别,但它是一个良好的习惯来写:

void foo(void) 
{ 

因为有可能来的时候,你写一个函数体而不让事先单独的原型,这用作原型,而void foo() {不用。

相关问题