我只是想问一下 - 在C语言中使用int main()
是强制性的,还是我们也可以使用void main()
?并且,这种情况仅在C ++中是强制性的吗?
答案 0 :(得分:8)
最佳做法是使用int main(void)
或int main (int argc, char **argv)
,因为C标准在此处说明了这一点:
1程序启动时调用的函数名为
main
。实施宣布否 这个功能的原型。它应定义为返回类型int
且没有 参数:int main(void) { /* ... */ }
或有两个参数(此处称为
argc
和argv
,但可能有任何名称 使用,因为它们是声明它们的函数的本地函数):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);
}