在C++中提前声明main函数是否有必要?

3

我正在阅读一位已离职同事的代码,许多应用程序源文件中都有对main()的前向声明。这在我的主要编程语言C中从未见过。

在C++或者C中,是否有前向声明 main() 的必要性?


1
由于在C++中不允许调用main()函数,我看不出有什么好的理由。 - drescherjm
在大学里我们的教授希望我们将函数写在主体下面,然后进行前向声明以达到理解目的,我想。不过无论你做什么都没关系。 - secdet
1个回答

4

在C++中,直接调用 main() 是不被允许的,因此没有真正需要提前声明它的必要性。提前声明允许我们在实际定义标识符之前告诉编译器该标识符的存在。

对于函数,这允许我们在定义函数主体之前告知编译器函数的存在。这样,当编译器遇到对函数的调用时,它会理解我们正在进行函数调用,并可以检查我们是否正确地调用了该函数,即使它还不知道函数如何或在哪里定义。

所以你不必担心提前声明的 main 函数。如果愿意,你可以直接清除掉它们。


1
这需要一个补充:不允许调用main,因此不需要前向声明。+1。 - Pete Becker
我也非常希望有这个补充。目前为止,这个答案并没有说明为什么你会或者不会前置声明main,它只是描述了前置声明并声称没有真正需要前置声明main - evading
实际上,允许前向声明main函数,我刚刚检查过了。 @evading 没有真正的理由去这样做,但这并不意味着你不能这样做。 - Alwin Joseph
@AlwinJoseph 是的,但由于显然不允许调用 main,这是不这样做的最好理由。 - evading

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接