做方案还找不到素材 这里有最全的设计网站,兰州市门户网站,建设企业网页,国外做的比较好的展台网站今天分享的内容是关于函数执行成功#xff0c;返回0还是1的讨论~基本上#xff0c;没有人会将大段的C语言代码全部塞入 main() 函数#xff0c;更好的做法是按照复用率高#xff0c;耦合性低的原则#xff0c;尽可能的将代码拆分不同的功能模块#xff0c;并封装成函数。… 今天分享的内容是关于函数执行成功返回0还是1的讨论~基本上没有人会将大段的C语言代码全部塞入 main() 函数更好的做法是按照复用率高耦合性低的原则尽可能的将代码拆分不同的功能模块并封装成函数。C语言代码的组合千变万化因此函数的功能可能会比较复杂不同的输入常常产生不同的输出结果。不同的输入常常产生不同的输出结果。1、C语言函数的返回值C语言函数可以通过返回值表示输出结果例如 log() 函数的返回值会根据不同的输入返回不同的值。再比如我们定义一个函数 myopen()用于打开某个文件那么这个函数要么能够成功打开文件要么打开文件失败这时可以通过返回值区分“成功”和“失败”。当然myopen() 函数失败的原因可能很多但不是本文关注的重点本文更关心的是该以何值表示“成功”何值表示“失败”。按照C语言语法 0 表示假非零常常用 1表示真那是否函数也用 0 返回值表示“失败”1 返回值表示“成功”呢2、“行业潜规则”C语言函数当然可以使用返回值 0 表示“失败”用返回值 1 表示“成功”。事实上C语言函数用什么样的返回值表示成功或者失败只是一种人为的约定函数的调用者遵守这个“约定”就可以了。C语言也有“行业潜规则”不过对于一般的函数大多数C语言程序员常常使用返回值 0 表示成功非零值表示失败。因此如果希望我们定义的函数能够被大多数人愉快的使用最好不要反其道而行遵守“行业潜规则”更好一点。仔细考虑下其实C语言函数使用返回值 0 表示成功是有原因的。更一般的C语言函数返回值并不一定只有两种可能值成功/失败它可能还会返回对应错误原因的返回值总之函数成功只有一种可能函数失败却有多种可能。3、函数成功只有一种可能函数失败却有多种可能实数要么是 0要么非 0因此可以将 0 看作一个比较特殊的“唯一”数值使用 0 这个“唯一”的返回值表示唯一的“成功”多种非零的返回值表示多种原因的失败无疑更好一些。当然我们也可以说“实数要么是 1要么非 1”不过这显然也不是“行业潜规则”。例如我们可以规定如果 myopen() 函数因为“文件或者目录不存在”的原因失败返回 -1如果因为“权限不够”的原因失败则返回 -2。-1 和 -2 都是“非零值”而成功作为失败的对立面也即“非零值”的对立面myopen() 函数使用返回值 0 表示成功无可厚非。4、C语言程序员中还有一种“行业潜规则”当然C语言程序员中还有一种“行业潜规则”。如果定义的函数是个布尔函数也即返回值显式的使用类似于 bool 关键字定义或者函数名类似于 is_true()那么显然此时应该遵守C语言语法使用“真”值表示成功“假”值表示失败。1if( is_true() )
2printf(true\n);请看上面这两行C语言代码显然遵守C语言语法的布尔函数更便于程序员写出布尔判断类的代码。5、最后本文主要讨论了C语言程序开发中关于函数返回值的问题。可见使用什么样的返回值表示成功什么用的返回值表示失败其实只是一种人为约定。只不过如果希望我们编写的代码能够被大多数同行愉快的使用最好遵守下“行业潜规则”。当然了若是希望我们的C语言代码应用性更广则可以使用标准头文件里预先定义好的 EXIT_SUCCESS 和 EXIT_FAILURE 宏。声明本文于网络整理版权归原作者所有如来源信息有误或侵犯权益请联系我们删除或授权事宜。