函数返回值的"rc"是什么意思?

krm*_*krm 12 c return-value

在阅读C代码时,我经常遇到如下语句:

int rc = foo(bar,baz);
assert(rc!= NULL);

其中变量rc用于检查函数的返回值.我认为这是某种形式的助记符,但无法推断其含义.

我想知道它的含义,以帮助我理解代码.

fav*_*tti 13

我认为这是"返回代码".主要用于表示0/NULL or 1形式的整数返回码.


Mik*_*ike 10

rc代表"大头菜砂锅".什么?你不这么认为吗?!

事实上,没有人可以说这是什么意思,因为C代码中没有强制名称.它可以代表"返回代码"或"远程控制"或者当时作者在脑海中的任何东西.

我想知道帮助理解代码的意义

你的论点本质上是有缺陷的.如果您想更好地理解代码,请确保阅读所使用函数的文档和来源,绝不相信函数名称或数据类型优先于代码实际执行的操作.


编辑以解决评论:

实际上,我认为你的论点存在缺陷,迈克.如果说知道常用的变量名不会帮助你理解代码是荒谬的,尽管事实上他们并没有强制要求.例如,众所周知,我通常使用(但未强制要求)作为跨所有语言的循环增量变量.

可以公平地说,人们倾向于遵循变量名称.我们会看到retrc一个返回值或返回代码,我们经常会看到一个变量a,b,c,..., ,i,j,k用于循环运营.然而,基于名称做出变量的假设是一个可怕的想法.
你不仅可以假设变量代表什么是错误的(例如i,欧姆定律中的一个简单函数很可能是选择代表当前的名称,与循环无关),但对你来说有意义的可能也不是对作者有意义的是什么.

例如,作者有一个变量int return_code.您可能会认为它将包含函数的返回代码,但是它可能用于检查您正在评估的函数调用的函数的返回值,而变量int r则用于返回代码.
假设您看到变量count是循环迭代器,或者是多个文件的计数,还是计数信号量?

所以,克里斯雷德福,我必须恭敬地不同意.说知道常用的变量名不会有助于理解代码,这并不荒谬,因为它不会比阅读代码本身更好,它可能会让你陷入迷路,以为你知道当你发生了什么事真的没有.
如果您了解了您将看到的源代码,return xxx;或者for(int yyy=0;您不必对这些变量正在做什么做出假设,那么您肯定会知道,这是保证您知道发生了什么的唯一方法.

  • 实际上,我认为你的论点存在缺陷,迈克.如果说知道常用的变量名不会帮助你理解代码是荒谬的,尽管事实上他们并没有强制要求.例如,众所周知,"i"通常用作(但不强制要求)作为所有语言的循环增量变量.在一种语言或应用程序中学习了`i`的使用后,您可以很容易地识别它在另一种语言或应用程序中的使用,并更快地理解代码. (3认同)