[技术问答] C语言的main函数

[复制链接]
1508|28
 楼主| minzisc 发表于 2025-3-25 21:00 | 显示全部楼层 |阅读模式
1,是这样?

main(){}

2,还是这样?

void main(){}

3,还是这样?

int main(void){}

4,还是这样?

int main(){}

5,还是这样?

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

上面这么多种写法,那么哪种才是正确的写法呢?

查阅C89/C99/C11标准文档,里面明确固定了两种写法:

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

所以说,其他的写法并不符合标准,有些算是历史遗留有些算是编译器的扩展,还有些不知道从哪里生出来的。

所以说了这么多,为了代码的通用可移植性,建议采用标准提供的形式,还是推荐使用标准文档中规定的这两种写法。如果一个函数确定无需传入任何参数,那么用void限定是一个不错的选择。

loutin 发表于 2025-4-4 11:02 | 显示全部楼层
C语言要求所有函数必须显式声明返回类型
averyleigh 发表于 2025-4-4 12:01 | 显示全部楼层
main() {
    // 函数体
}
51xlf 发表于 2025-4-4 13:33 | 显示全部楼层
void main() {
    // 代码
}
ingramward 发表于 2025-4-4 16:35 | 显示全部楼层
        无参数的通用程序              
burgessmaggie 发表于 2025-4-5 19:39 | 显示全部楼层
int main(void) {
    // 程序代码
    return 0; // 表示程序成功执行
}
everyrobin 发表于 2025-4-5 22:42 | 显示全部楼层
void main()              
jkl21 发表于 2025-4-6 07:21 | 显示全部楼层
在编写一个文件处理程序时,可以通过命令行参数指定要处理的文件名。
adolphcocker 发表于 2025-4-8 17:28 | 显示全部楼层
适用于大多数场景,尤其是无需处理命令行参数的程序。
biechedan 发表于 2025-4-9 21:04 | 显示全部楼层
建议使用int main(void)这种明确指定无参数的写法。
claretttt 发表于 2025-4-10 00:17 | 显示全部楼层
void main() {}              
vivilyly 发表于 2025-4-10 03:27 | 显示全部楼层
void main(){},这里返回类型是void。
mnynt121 发表于 2025-4-10 14:04 | 显示全部楼层
一些嵌入式系统或特定的编译器可能允许void main(),但根据ISO C标准,main必须返回int。
wwppd 发表于 2025-4-10 16:07 | 显示全部楼层
若程序不需要接收命令行参数,推荐使用int main(void);若需要接收命令行参数,则应使用int main(int argc, char *argv[])。
updownq 发表于 2025-4-10 18:16 | 显示全部楼层
main 必须返回 int,通常 return 0; 表示成功,非零值表示错误。
xiaoyaodz 发表于 2025-4-10 20:24 | 显示全部楼层
显式声明 void 参数,增强代码可读性。
burgessmaggie 发表于 2025-4-10 22:27 | 显示全部楼层
int main(void)              
cashrwood 发表于 2025-4-12 20:49 | 显示全部楼层
使用void main()              
pixhw 发表于 2025-4-12 22:42 | 显示全部楼层
int main(void):适用于大多数简单应用程序。
sanfuzi 发表于 2025-4-13 11:51 | 显示全部楼层
int main(void){}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

5735

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部