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有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章