C语言的主函数是程序的唯一入口,所有可执行代码都从主函数开始运行,正确书写主函数是编写C语言程序的基础。主函数的标准名称是main,所有C程序都必须包含且仅包含一个main函数。

C语言主函数的基本写法
最常见的无参数主函数写法如下,这是初学者最先接触的形式:
#include <stdio.h>
// 无参数主函数标准写法
int main() {
printf("Hello Worldn");
return 0;
}
这里有几个关键点需要注意:
- 主函数的返回类型必须是
int,表示程序的退出状态,返回0通常表示程序正常结束 - 函数名
main必须全部小写,不能写成Main或者MAIN - 函数体用大括号包裹,
return 0;语句建议显式写出,虽然部分编译器允许省略,但不符合C语言标准
带参数的主函数写法
当程序需要接收命令行参数时,主函数可以带两个参数,写法如下:
#include <stdio.h>
// 带参数的主函数写法
int main(int argc, char *argv[]) {
printf("参数个数:%dn", argc);
for (int i = 0; i < argc; i++) {
printf("第%d个参数:%sn", i, argv[i]);
}
return 0;
}
两个参数的含义分别是:
argc:命令行参数的个数,程序名本身也算一个参数argv:存储所有参数的字符串数组,第一个元素argv[0]是程序名
常见的主函数书写错误
新手在写主函数时容易出现以下错误:
- 把返回类型写成
void,这种写法不符合C语言标准,部分编译器虽然支持但不通用 - 遗漏函数名后面的小括号,或者小括号写成全角字符
- 函数体大括号不匹配,导致编译报错
- 在
main后面加参数但参数类型写错,比如把char *argv[]写成char argv[][]
不同场景下的写法选择
如果程序不需要接收外部命令行参数,使用无参数的int main()写法即可,简洁且符合规范。如果需要根据用户输入的参数调整程序运行逻辑,就使用带argc和argv的写法。无论哪种写法,都要保证返回类型是int,并且函数名正确。
注意:C语言标准只规定了main函数的两种合法形式,分别是无参数的int main(void)和带两个参数的int main(int argc, char *argv[]),其他写法都可能存在兼容性问题。