作者:小妖694_807 | 2023-08-20 11:18
在本地函数中命名临时变量的标准方法是什么?让我举一个例子说明我在做什么.我得到一个结构的指针,所以我想在本地存储其成员之一,以避免被引用,然后任何修改分配回指针.
更具体一点:
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'或任何单个字母作为变量名称的想法.你有没有试过搜索代码寻找'我'的所有用途!你几乎停在每个评论的每个句子和一大堆其他标识符中,这很痛苦.保持简短,但不要那么短.