是否必须在C语言中使用int main()?

问题描述 投票:0回答:3

我只是想问一下 - 在C语言中使用int main()是强制性的还是我们也可以使用void main()吗?而且,这种情况仅在C ++中是强制性的吗?

c
3个回答
8
投票

最好使用int main(void)int main (int argc, char **argv),因为C标准在这里说:

C11: 5.1.2.2.1 Program startup:

1程序启动时调用的函数名为main。该实现声明此函数没有原型。它应该用返回类型int定义,没有参数:

int main(void) { /* ... */ }

或者有两个参数(这里称为argcargv,虽然可以使用任何名称,因为它们是声明它们的函数的本地名称):

int main(int argc, char *argv[]) { /* ... */ }

等价物; 10)或其他一些实施定义的方式。

如果实现允许,也可以使用其他形式,但最好坚持使用标准形式。


0
投票

从c99开始,有两个允许的主签名,所有实现都必须支持:

int main(void);
int main(int argc, char* argv[]);

但是,实现可能支持他们希望的任何其他签名,这些签名包括添加第三个参数以传递系统信息或替代返回类型。要了解您的系统是否存在,请参阅编译器文档。


0
投票

不只是int main(),但人们可以完全跳过写main()

main()是c程序的切入点,这是一个普遍的事实,但实际上当我们深入研究时,很明显,main()被另一个名为_start()的函数调用,这实际上是在抽象层次调用的第一个函数。

#include <stdio.h>
extern void _exit(register int);

int _start(){

printf(“Hello World\n”);

_exit(0);

}
© www.soinside.com 2019 - 2024. All rights reserved.