鱼C论坛

 找回密码
 立即注册
查看: 938|回复: 4

[已解决]关于main函数的一个小问题

[复制链接]
发表于 2023-7-29 18:43:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 Frog_Belly 于 2023-7-29 18:44 编辑

最近我学小甲鱼课程和看其他书的时候,发现书上的main和小甲鱼写的main很多都不一样,而且网上搜的也不是一样。
有的写成这样:
int main()
...
有的写成这样:
main()
...
有的写成这样:
void main()
...
有的写成这样:
int main(int argc, char *args[])
...
小甲鱼写的是这样的:
int main(void)
...
到底哪种是对的,新人怕之后学习走歪路,求大佬指点
最佳答案
2023-7-29 18:43:28
在C/C++编程中,关于 main 函数的写法存在一些不同的风格和约定,但只有一种是标准且被广泛接受的。让我解释每种写法的含义,并告诉你哪一种是正确的。

1.  int main()
这是最常见的 main 函数写法。 int 表示 main 函数将返回一个整数值作为程序的退出状态码。在C/C++中,程序成功执行通常返回0,非零值表示出现了错误或异常。例如, return 0;  表示程序正常结束, return 1;  表示程序出现了某种错误。

2.  main()
这种写法省略了函数的返回类型,但在C/C++中,如果省略返回类型,编译器会默认为 int 类型。因此,这种写法与第一种写法是等价的。

3.  void main()
这种写法将 main 函数的返回类型定义为 void ,表示 main 函数没有返回值。这是一个不推荐的写法,因为C/C++标准要求 main 函数必须有返回值,通常用来指示程序的执行状态。尽管一些编译器可能支持这种写法,但这不是一个良好的编程实践,应该避免使用它。

4.  int main(int argc, char *argv[])
这种写法增加了两个参数: argc 和 argv 。 argc 表示命令行参数的个数, argv 是一个指向字符串数组的指针,每个字符串表示一个命令行参数。例如,执行程序时,可以通过命令行输入参数,比如 ./program arg1 arg2 ,那么 argc 将为3, argv[0] 指向程序名 "./program" , argv[1] 指向 "arg1" , argv[2] 指向 "arg2" 。这种写法在需要处理命令行参数的情况下很有用,但如果你的程序不需要处理命令行参数,可以不使用这两个参数。

5.  int main(void)
这是C语言中最标准和推荐的 main 函数写法。它明确指定 main 函数没有任何参数,这意味着该程序不接受任何命令行参数。与第一种写法相比,它的返回类型也被明确指定为 int ,以便正确指示程序的执行状态。

所以,小甲鱼使用的 int main(void) 是正确且标准的写法。对于大多数C/C++编程场景,你可以安全地采用这种写法,它也是最为推荐的。遵循标准的写法可以帮助你养成良好的编程习惯,避免潜在的问题。

评分

参与人数 1荣誉 +1 收起 理由
myd0311 + 1 鱼C有你更精彩^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-7-29 18:43:25 | 显示全部楼层
关于main函数的写法,根据C语言标准(C89、C99、C11等),正确的写法是:
int main(void)

这是main函数的标准形式,它表示main函数不接收任何命令行参数,并且返回一个整数值(通常用于指示程序的执行状态)。

其他变种写法在不同的编译器和语言规范下可能被接受,但并不符合C语言的规范。例如:

· main():省略了返回类型,这在老版本的C语言标准中可能被接受,但在新的标准中已经被废弃。
· void main():将main声明为返回类型为void,这也是不符合C语言标准的写法。
· int main(int argc, char *argv[]):此形式允许main函数接收命令行参数,其中argc表示参数数量,argv是一个字符串数组,包含实际的参数值。这是一种常用的形式,特别是需要处理命令行参数的情况。

尽管某些编译器可能允许使用上述非标准形式,但为了保证代码的可移植性和符合C语言的规范,推荐使用int main(void)作为main函数的写法。
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-7-29 18:43:28 | 显示全部楼层    本楼为最佳答案   
在C/C++编程中,关于 main 函数的写法存在一些不同的风格和约定,但只有一种是标准且被广泛接受的。让我解释每种写法的含义,并告诉你哪一种是正确的。

1.  int main()
这是最常见的 main 函数写法。 int 表示 main 函数将返回一个整数值作为程序的退出状态码。在C/C++中,程序成功执行通常返回0,非零值表示出现了错误或异常。例如, return 0;  表示程序正常结束, return 1;  表示程序出现了某种错误。

2.  main()
这种写法省略了函数的返回类型,但在C/C++中,如果省略返回类型,编译器会默认为 int 类型。因此,这种写法与第一种写法是等价的。

3.  void main()
这种写法将 main 函数的返回类型定义为 void ,表示 main 函数没有返回值。这是一个不推荐的写法,因为C/C++标准要求 main 函数必须有返回值,通常用来指示程序的执行状态。尽管一些编译器可能支持这种写法,但这不是一个良好的编程实践,应该避免使用它。

4.  int main(int argc, char *argv[])
这种写法增加了两个参数: argc 和 argv 。 argc 表示命令行参数的个数, argv 是一个指向字符串数组的指针,每个字符串表示一个命令行参数。例如,执行程序时,可以通过命令行输入参数,比如 ./program arg1 arg2 ,那么 argc 将为3, argv[0] 指向程序名 "./program" , argv[1] 指向 "arg1" , argv[2] 指向 "arg2" 。这种写法在需要处理命令行参数的情况下很有用,但如果你的程序不需要处理命令行参数,可以不使用这两个参数。

5.  int main(void)
这是C语言中最标准和推荐的 main 函数写法。它明确指定 main 函数没有任何参数,这意味着该程序不接受任何命令行参数。与第一种写法相比,它的返回类型也被明确指定为 int ,以便正确指示程序的执行状态。

所以,小甲鱼使用的 int main(void) 是正确且标准的写法。对于大多数C/C++编程场景,你可以安全地采用这种写法,它也是最为推荐的。遵循标准的写法可以帮助你养成良好的编程习惯,避免潜在的问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2023-7-29 18:45:44 | 显示全部楼层
陶远航 发表于 2023-7-29 18:43
关于main函数的写法,根据C语言标准(C89、C99、C11等),正确的写法是:

有点疑惑qaq,命令行参数是什么
int main() 还没有解释呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-7-29 18:46:29 | 显示全部楼层
isdkz 发表于 2023-7-29 18:43
在C/C++编程中,关于 main 函数的写法存在一些不同的风格和约定,但只有一种是标准且被广泛接受的。让我解 ...

这个回答还清晰一点,感谢指点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-7 11:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表