在阅读C代码时,我经常遇到如下语句:
int rc = foo(bar,baz);
assert(rc!= NULL);
其中变量rc用于检查函数的返回值.我认为这是某种形式的助记符,但无法推断其含义.
我想知道它的含义,以帮助我理解代码.
Mik*_*ike 10
rc代表"大头菜砂锅".什么?你不这么认为吗?!
事实上,没有人可以说这是什么意思,因为C代码中没有强制名称.它可以代表"返回代码"或"远程控制"或者当时作者在脑海中的任何东西.
我想知道帮助理解代码的意义
你的论点本质上是有缺陷的.如果您想更好地理解代码,请确保阅读所使用函数的文档和来源,绝不相信函数名称或数据类型优先于代码实际执行的操作.
编辑以解决评论:
实际上,我认为你的论点存在缺陷,迈克.如果说知道常用的变量名不会帮助你理解代码是荒谬的,尽管事实上他们并没有强制要求.例如,众所周知,我通常使用(但未强制要求)作为跨所有语言的循环增量变量.
可以公平地说,人们倾向于遵循变量名称.我们会看到ret或rc一个返回值或返回代码,我们经常会看到一个变量a,b,c,..., ,i,j,k用于循环运营.然而,基于名称做出变量的假设是一个可怕的想法.
你不仅可以假设变量代表什么是错误的(例如i,欧姆定律中的一个简单函数很可能是选择代表当前的名称,与循环无关),但对你来说有意义的可能也不是对作者有意义的是什么.
例如,作者有一个变量int return_code.您可能会认为它将包含函数的返回代码,但是它可能用于检查您正在评估的函数内调用的函数的返回值,而变量int r则用于返回代码.
假设您看到变量count是循环迭代器,或者是多个文件的计数,还是计数信号量?
所以,克里斯雷德福,我必须恭敬地不同意.说知道常用的变量名不会有助于理解代码,这并不荒谬,因为它不会比阅读代码本身更好,它可能会让你陷入迷路,以为你知道当你发生了什么事真的没有.
如果您了解了您将看到的源代码,return xxx;或者for(int yyy=0;您不必对这些变量正在做什么做出假设,那么您肯定会知道,这是保证您知道发生了什么的唯一方法.