【发布时间】:2020-03-09 11:08:20
【问题描述】:
情况是我想使用描述性变量名称作为成员变量,以便它们在标题中很好理解(例如:min_distance_to_polygon)。然而,在复杂的算法中,我发现使用更短的变量名称会更顺畅,因为上下文很清楚(例如 min_dist 在这种情况下)。
所以在方法的定义中我只写:
int & min_dist = min_distance_to_polygon;
这是否会在编译后产生开销,这是否是可接受的编码风格?
编辑:这会更好(因为它可以防止可能的复制)?
int & min_dist{min_distance_to_polygon};
【问题讨论】:
-
对于
int,即使您在没有编译器优化的情况下进行复制,您也可能不会注意到任何差异。当您必须在可读性和过早优化之间做出选择时,最好选择第一个 -
@foreknownas_463035818 嗯?甚至不会制作副本。如果没有省略引用,则会存储一个内存地址。
-
不管编译器是否对此进行了优化,我认为我不喜欢你的策略:作为代码的读者,我会想知道这里到底发生了什么,为什么你看起来不必要地给变量起别名。我不会通过赋值重命名它(并删除不必要的引用!复制它),我会尝试重组算法以减少对冗长名称的引用。