C语言,图中这个函数OK的值为啥是1,return 1和0有啥区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言,图中这个函数OK的值为啥是1,return 1和0有啥区别?相关的知识,希望对你有一定的参考价值。

上面的OK和ERROR 应该是 宏定义
上图 中是 如果i小于1 或i大于3 就返回ERROR,否则就返回OK

如果OK=1 那么ERROR 应该是0.
应该在其他地方有宏定义:
#define ERROR 0 // 定义常量ERROR=0
#define OK 1// 定义常量OK=1
此类宏定义一般放在头文件中,你咨询找找看
=======================================
希望我的回答对你有帮助。
参考技术A 这里如果OK是1其实是违反惯例的。
在这里1或者0其实没有区别,只要调用者同步一致即可。不过习惯上我们用0表示成功,非0表示失败,这个代码其实是比较违反习惯的。用0表示成功和非0表示失败的原因是失败的原因可以有很多种,不同非零值可以表示不同错误原因。既然这里只有一种错误情况,所以实际上无所谓,只是如果你增加错误分支时比较麻烦。
参考技术B OK,ERROR之类的一般是常量,应该在前面有定义。一个好的程序员应该在代码中避免直接使用数值常量,这样做会提高代码的可维护性。

c语言define用法是啥

参考技术A

是定义的意思,将一个变量强制定义为你想要的值。如#define PI 3.14就是将PI的值定义成3.14,这样在程序里看到PI就可以替换成3.14了。

在程序执行期间其值可以改变的量称为变量,变量类型又分为系统变量和用户自定义变量。

define可以像函数那样接受一些参数:#define max(x,y) (x)>(y)?(x):(y);

这个定义就将返回两个数中较大的那个,因为这个“函数”没有类型检查,就好像一个函数模板似的,当然,它绝对没有模板那么安全就是了。可以作为一个简单的模板来使用而已。

C语言中无参宏定义的一般形式为:

#define 宏名 字符串 

其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令,“define”为宏定义命令。“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。

例如:#define M (a+b) 它的作用是指定标识符M来代替表达式(a+b)。在编写源程序时,所有的(a+b)都可由M代替,而对源程序作编译时,将先由预处理程序进行宏代换,即用(a+b)表达式去置换所有的宏名M,然后再进行编译。

以上内容参考:百度百科-define

以上是关于C语言,图中这个函数OK的值为啥是1,return 1和0有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

在c语言中ok++表示啥

c语言的主要作用是啥

c语言中为啥函数不能重名?请举个函数重名的例子,谢谢

为啥我们不能在 C 语言中拥有两个主要功能?

用vs2019编写c语言程序,明显语法错误为啥不回报错,没有加return 0;

c语言的if函数,能否有大佬能解释一下用法?