


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WordC语言函数返回1和返回0哪个好?基本上,没有人会将大段的(C语言)代码全部塞入main()函数。更好的做法是按照复用率高、(耦合)性低的原则,尽可能的将代码拆分不同的功能模块,并封装成函数。
C语言代码的组合千变万化,因此函数的功能可能会比较复杂,不同的输入,常常产生不同的输出结果。
01C语言函数的返回值
C语言函数可以通过返回值表示输出结果,例如log()函数的返回值会根据不同的输入,返回不同的值。再比如,我们定义一个函数myopen(),用于打开某个文件,那么,这个函数要么能够成功打开文件,要么打开文件失败,这时,可以通过返回值区分“成功”和“失败”。
当然,myopen()函数失败的原因可能很多,但不是本文关注的重点,本文更关心的是,该以何值表示“成功”,何值表示“失败”。
按照C语言语法,0表示假,非零(常常用1)表示真,那是否函数也用0返回值表示“失败”,1返回值表示“成功”呢?
02行业“潜规则”
C语言函数当然可以使用返回值0表示“失败”,用返回值1表示“成功”。
事实上,C语言函数用什么样的返回值表示成功或者失败,只是一种人为的约定,函数的调用者遵守这个“约定”就可以了。
C语言也有“行业潜规则”,不过,对于一般的函数,大多数C语言(程序员)常常使用返回值0表示成功,非零值表示失败。因此,如果希望我们定义的函数能够被大多数人愉快的使用,最好不要反其道而行,遵守“行业潜规则”更好一点。
仔细考虑下,其实C语言函数使用返回值0表示成功是有原因的。更一般的C语言函数返回值并不一定只有两种可能值(成功/失败),它可能还会返回对应错误原因的返回值。总之,函数成功只有一种可能,函数失败却有多种可能。
实数要么是0,要么非0,因此可以将0看作一个比较特殊的“唯一”数值,使用0这个“唯一”的返回值,表示唯一的“成功”,多种非零的返回值,表示多种原因的失败,无疑更好一些。
当然,我们也可以说“实数要么是1,要么非1”,不过这显然也不是“行业潜规则”。
例如我们可以规定,如果myopen()函数因为“文件或者目录不存在”的原因失败,返回-1,如果因为“权限不够”的原因失败,则返回-2。-1和-2都是“非零值”,而成功作为失败的对立面,也即“非零值”的对立面,myopen()函数使用返回值0表示成功无可厚非。
03C语言程序员中另一行业“潜规则”
当然,C语言程序员中还有一种“行业潜规则”。如果定义的函数是个布尔函数,也即返回值显式的使用类似于bool关键字定义,或者函数名类似于is_true(),那么显然此时应该遵守C语言语法,使用“真”值表示成功,“假”值表示失败。
if(
is_true()
)
printf("true");
请看上面这两行C语言代码,显然,遵守C语言语法的布尔函数更便于程序员写出布尔判断类的代码。
04小结
本文主要讨论了C语言程序开发中关于函数返回值的问题。可见,使用什么样的返回值表示成功,什么样的返回值表示失败,其实只是一种人为约定。
只不过,如果希望我们编写的代码能够被大多数同行愉快地使用,最好遵守下“行业潜规则”。
当然了,若是希望我们的C语言代码应用性更广,则可以使用标准头文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版变更租赁经营合同的补充协议
- 二零二五版餐厅经营转让合同书
- 二零二五离婚协议书违约金标准
- 以患者为中心的医疗模式下的沟通策略
- 数据服务合同书数据采集服务合同书
- 二零二五嫁妆归女方离婚协议书
- 了解并掌握区块链技术的核心原理
- 二零二五版产业园企业入驻协议书
- 公司员工培训协议二零二五年
- 自然人反担保合同书二零二五年
- DL∕T 1709.3-2017 智能电网调度控制系统技术规范 第3部分:基础平台
- 考核办法和考核方案
- 化妆品生产OEM合同书
- 海上CANTITRAVEL平台桩基施工关键技术应用v7
- 2024年4月自考08229计算机统计分析方法试题
- 有色金属冶金概论课程教案
- 华为MA5800配置及调试手册
- 中国生产安全行业市场运行动态及投资发展潜力分析报告
- 【真题】2023年镇江市中考化学试卷(含答案解析)
- 2023-2024年电子物证专业考试复习题库(含答案)
- 安全生产培训课件:机器设备安全操作规程
评论
0/150
提交评论