我刚刚开始编程,我已经开始听到标准初学者对"主要使用返回值"的定义,但它没有达到我想要理解的程度.所以,是的,'int main'的返回值0例如表示程序运行成功,因为main是int数据类型,0反映了这一点.
但这有什么意义呢?计算机是否已经知道代码是否成功?当然,我们可以编写一个有缺陷的代码,然后返回0,按照这个逻辑,我们(程序员)说这个代码是正确的,但编译器实际上执行程序,如果它是错误的/有缺陷的,它根本无法对它进行操作.
请使用初学者可以理解的解释.
程序可能会失败,因为某些期望未得到满足.
例如,main 当其中一个参数不是有效文件名,或者由于某些原因导致无法打开该文件时,计算作为参数传递的文件中的行数的程序将失败.如果您编写这样的程序,则需要为此明确添加一些程序逻辑(即几个或多个源代码行).一个优秀的程序员不允许他的程序崩溃(即使错误或缺少输入或参数).
将源文件复制到目标的简单程序需要两个参数.如果main没有给出两个参数,它应该失败.如果第一个参数没有命名有效且可访问的文件,则程序也应该失败.如果由于某个磁盘已满而无法实现复制,则该程序也应该失败.
main实际上,返回是一些任意整数.在Linux和许多POSIX系统上,它应该是0到255之间的某个整数(0表示"成功执行",其他退出值表示失败).请参阅exit(3)和waitpid(2)了解更多信息.
通过一些约定(你需要记录)失败代码(实际上它们很少,通常少于十几个,通常是0个名字EXIT_SUCCESS- 成功时和1个名字EXIT_FAILURE- 失败时)可以告诉失败原因.有关tar(1),coreutils程序,grep(1)等的文档,请参阅示例.
BSD Unix一样在定义一些约定sysexits(但Linux程序一般不使用).
Shell脚本可以轻松测试和处理退出代码.
阅读有关Unix哲学的内容.成功的命令行程序(例如cp(1))通常可以保持沉默.错误消息将按照惯例传递给stderr.
正如你所了解C语言编程,你就会明白,约定一个重要大不少(并记录他们来说,这是很重要的).研究一些现有自由软件程序的源代码,例如在github上.
请记住,您不是主要为计算机编写代码,而且主要是针对此人(可能是几个月内,也许是您公司工作的未来开发人员,当您将成为专业开发人员时)必须改进你的代码....
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |