20

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

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

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

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

4

4 回答 4

20

我认为这是“返回码”。多用于指0/NULL or 1形式的整数返回码。

于 2013-02-26T14:26:41.637 回答
10

rc代表“芜菁甘蓝砂锅”。什么?你不这么认为吗?!

好吧,事实是没有人能说出这真正代表什么,因为 C 代码中没有强制名称。它可以代表“返回代码”或“远程控制”或作者当时脑海中的任何东西。

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

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


编辑以解决评论:

事实上,我认为你的论点是有缺陷的,迈克。说知道常用的变量名并不能帮助您理解代码是荒谬的,尽管它们不是强制性的。例如,众所周知,i 通常用作(但不是强制的)跨所有语言的循环增量变量。

可以说确实存在人们倾向于遵循的变量名称。我们将看到retorrc用于返回值或返回码,我们经常会看到用于循环运算符的单个变量a, b, c,..., i, j, 。k然而,根据名称假设变量的作用是一个糟糕的主意。
不仅您对变量代表什么的假设可能是错误的(例如i,欧姆定律函数中的简单名称很可能是选择代表电流的名称,与循环无关),而且对您有意义的可能不是什么对作者有意义。

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

So, Chris Redford, I must respectfully disagree. It's not absurd to say that knowing commonly used variable names won't help understand code, because it won't do any better than reading the code itself, and it might lead you down a stray path thinking you know what is going on when you really don't.
If you understand source code you'll see return xxx; or for(int yyy=0; and you won't have to make assumptions about what those variables are doing, you'll know for sure, and that's the only way to be guaranteed you know what's happening.

于 2013-02-26T14:59:22.677 回答
4

它通常表示“返回代码”或“结果代码”,尽管它基本上可以表示任何内容,具体取决于作者的意图。按照命名约定,它并不是那么好。我的意思是,它比 好myVariable,但不是很多。

我赞同变量名应该是有意义的,并且rc不是很有意义的想法。如果它的意思是“结果代码”,那么我的问题是“结果是什么?” 返回码代表什么?

于 2013-02-26T14:46:14.003 回答
3

我会猜测“结果代码”,但这当然只是猜测。

于 2013-02-26T14:25:30.323 回答