当前位置:  开发笔记 > 编程语言 > 正文

在C中决定返回值的一般方法是什么?

如何解决《在C中决定返回值的一般方法是什么?》经验,为你挑选了1个好方法。

我的程序是用C语言编写的Linux,并且有许多函数,它们具有不同的返回值模式:

1)一次或两次n成功和-1失败的回报.
2)一些0成功和-1失败的回报.
3)成功时返回1,失败时返回0(我通常使用布尔类型).
4)指针返回0失败(我通常使用spurn NULL).

我的混乱出现在前三个 - 返回指针的函数总是0在失败时返回,这很容易.

第一个选项通常涉及返回长度的函数,该长度可能只是正数.

第二个选项通常涉及命令行处理函数,但我不确定它是否正确,或许更好的值是EXIT_SUCCESS和EXIT_FAILURE?

第三个选项适用于在条件内调用方便且自然的函数,我通常使用int值1和0 来模拟布尔类型.

尽管这一切似乎相当明智的,我仍然觉得哪里的区域,这是不太清楚或明显为当我创建的功能,或风格是在使用时,我想用它来使用的风格.

那么在决定返回类型时,如何为我的方法增加清晰度呢?



1> Norman Ramse..:

那么,在这里确定返回类型时,如何增加方法的清晰度?

为每种退货类型选择一种模式并坚持下去,否则您会发疯。根据已经为平台建立的约定对模式进行建模:

如果要进行大量系统调用,则任何返回整数的函数都应-1在失败时返回。

如果不进行系统调用,则可以随意遵循C控制结构的约定,即非零表示成功,零表示失败。(我不知道你为什么不喜欢bool。)

如果函数返回指针,则应通过返回来指示失败NULL

如果函数返回浮点数,则应通过返回NaN来指示失败。

如果函数返回完整的有符号和无符号整数范围,则可能不应在返回值中编码成功或失败。

测试返回值对C程序员是一个祸根。如果失败很少发生,并且您可以编写中央处理程序,请考虑使用可以指示失败的异常宏包longjmp

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有