C ++标准列出了main
的允许形式。它不会将int main(void)
列为允许的表单。但是,它通常表明
参数列表(void)等同于空参数列表
int main(void)
是否为允许的表单?
答案 0 :(得分:10)
来自 N3936 标准草案:
3.6开始和终止
3.6.1主要功能
2实现不应预定义主函数。这个 功能不得超载。它应具有声明的返回类型 int类型,但其类型是实现定义的。一个 实施应允许两者
- ()返回int 和
的函数- 返回int
的函数(int,指向char的指针)作为主要类型(8.3.5)。
然后:
8.3.5功能
4 ... 由单个未命名参数组成的参数列表 非依赖类型void等效于空参数列表。 ...
因此,
awk -F'|' '$2 ~ /^[^a-zA-Z]+$/' file
是int main(void)
函数的允许形式。
答案 1 :(得分:0)
除了评论@Some程序员dude和@ Edgar的回答之外,这是 N3936 草案的一部分,它解释了C ++与标准C之间的区别:
C.1.7第8条:声明者[diff.decl]
8.3.5
更改:在C ++中,使用空参数列表声明的函数 没有争论。在C中,空参数列表表示数字和 函数参数的类型是未知的。
示例:
int f(); //表示C ++中的int f(void)
// C中的int f(未知)