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

时间:2014-08-19 14:43:45

标签: c

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

3 个答案:

答案 0 :(得分:8)

最佳做法是使用int main(void)int main (int argc, char **argv),因为C标准在此处说明了这一点:

C11:5.1.2.2.1程序启动:

  

1程序启动时调用的函数名为main。实施宣布否   这个功能的原型。它应定义为返回类型int且没有   参数:

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

或有两个参数(此处称为argcargv,但可能有任何名称   使用,因为它们是声明它们的函数的本地函数):

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

或等效的; 10)或以其他一些实现定义的方式。

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

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

不仅仅是int main(),还可以完全忽略编写main()

main()是交流计划的切入点,这是一个普遍的事实,但实际上当我们深入研究时,很明显,main()被另一个名为_start()的函数调用了实际上是抽象级别调用的第一个函数。

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

int _start(){

printf(“Hello World\n”);

_exit(0);

}