当前位置:  开发笔记 > 编程语言 > 正文

命名临时局部变量的约定

如何解决《命名临时局部变量的约定》经验,为你挑选了2个好方法。

在本地函数中命名临时变量的标准方法是什么?让我举一个例子说明我在做什么.我得到一个结构的指针,所以我想在本地存储其成员之一,以避免被引用,然后任何修改分配回指针.

更具体一点:

struct  Foo
{
  double m_d;

};


void function (Foo* f)
{
   double tmp=f->m_d;

       /***Other stuff***/

     f->m_d=tmp;
}

我不喜欢tmp.如果我在一个函数中有很多它们,它们只会增加混乱.

谢谢



1> Martin B..:

对任何其他变量做同样的事情:给它一个简洁,富有表现力的名字.如何使用您正在复制的成员变量的原始名称(可能不用了m_)?这是在两者之间建立连接的最佳方式.


无论如何,让'm_`发臭;-)严肃地说,只要理解这个变量.如果保存d的值,可以随意将其保存到`old_d`,`temp_d`或者其他任何让你感到高兴的事情.
@enigma:然后使用与您要复制的结构字段相同的名称.不存在命名冲突,因为要访问该字段,您必须在其前面加上它所属的结构.

2> 小智..:

Linus Torvalds - 来自Linus Torvalds的Linux内核编码风格:

LOCAL变量名称应该简短,并且要点.如果你有一些随机整数循环计数器,它应该被称为"i".如果没有机会被误解,那么称它为"loop_counter"是非生产性的.类似地,"tmp"可以是用于保存临时值的任何类型的变量.

如果你害怕混淆你的本地变量名,你还有另一个问题,就是所谓的功能 - 生长 - 激素 - 失衡综合症.


@Konrad:你所说的是一个广告同性恋论点:一个论证,攻击持有观点或推进论证的人,而不是评论观点或回应论点....
对不起 - 但Linus Torvalds在代码风格方面根本不是一个很好的参考,请参阅他对'goto`对手的诽谤[http://kerneltrap.org/node/553/2131].在那个特殊情况下,他*是*(种类)权利(恕我直言),但作为对权威的诉求,这一个是谬误.
我并不总是支持Linus的观点,但我同意*两个*样本(临时和goto).他在这两种情况下所说的话 - 在你明白后者的含义并与之相矛盾之前,不要盲目坚持愚蠢的规则.而且,虽然这一点在企业机器人的世界中受到强烈反对,但如果你处理有智慧的人类,它确实很有意义.
我讨厌使用'i'或任何单个字母作为变量名称的想法.你有没有试过搜索代码寻找'我'的所有用途!你几乎停在每个评论的每个句子和一大堆其他标识符中,这很痛苦.保持简短,但不要那么短.
推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有