我见过带有以下签名的方法:
void foo (void);
Run Code Online (Sandbox Code Playgroud)
他们没有争论,但我想知道这样做是否有用.你有没有理由想要这样做?
Ray*_*hen 52
这是旧版C的延续,foo()
意思是"具有未知数量参数foo(void)
的函数",意思是"具有零参数的函数".在C++中,foo()
和foo(void)
意思都是"零个参数的函数",但有些人更喜欢第二种形式,因为它是更加明确.
Jon*_*Jon 16
C++ 03标准说(强调我的):
8.3.5.2
parameter-declaration-clause确定调用函数时可以指定的参数及其处理.[注意:parameter-declaration-clause用于转换函数调用中指定的参数; 见5.2.2.] 如果参数声明子句是空的,函数没有参数.
这意味着如果你正在与编译器交谈,那只是一个品味问题.
如果您正在编写将由其他人阅读的代码,那么C++的处理方式就是
void foo();
Run Code Online (Sandbox Code Playgroud)
另一种形式只是为了与C,那里有兼容性的原因仍然有效是两个签名之间的差异.
归档时间: |
|
查看次数: |
9892 次 |
最近记录: |