我只是想问一下 - 在C语言中使用int main()
是强制性的还是我们也可以使用void main()
吗?而且,这种情况仅在C ++中是强制性的吗?
最好使用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)或其他一些实施定义的方式。
如果实现允许,也可以使用其他形式,但最好坚持使用标准形式。
从c99开始,有两个允许的主签名,所有实现都必须支持:
int main(void);
int main(int argc, char* argv[]);
但是,实现可能支持他们希望的任何其他签名,这些签名包括添加第三个参数以传递系统信息或替代返回类型。要了解您的系统是否存在,请参阅编译器文档。
不只是int main()
,但人们可以完全跳过写main()
。
main()
是c程序的切入点,这是一个普遍的事实,但实际上当我们深入研究时,很明显,main()
被另一个名为_start()
的函数调用,这实际上是在抽象层次调用的第一个函数。
#include <stdio.h>
extern void _exit(register int);
int _start(){
printf(“Hello World\n”);
_exit(0);
}