在单个变量中初始化和计算的不良做法? Visual C ++

时间:2013-01-25 06:07:55

标签: visual-c++ variables initialization arithmetic-expressions

在变量中初始化和算术运算是不好的做法吗?也就是说我有多个不同面积尺寸的房间,我必须找到以下区域:

(以英尺为单位)

double room_area1 = 9.5 * 6.8;
double room_area2 = 9.1 * 6.2;
double room_area3 = 10.0 * 7.1; 

或者最好这样做:

double room_area1 = 9.5;
room_area1 = room_area1 * 6.8;

这两种方式之间是否有任何差异,或者它是一样的,只是风格问题?

3 个答案:

答案 0 :(得分:2)

首先只涉及一个操作:初始化
第二项涉及两项操作:初始化+分配

对于像double这样的内部数据类型,开销可以忽略不计,但对于用户定义的数据类型,第二类对性能有害(多少?分析应该告诉)。

因此,一般来说,使用First是更好的做法,因为:

  • 如果不快于第二次
  • ,则保证至少快
  • 更具可读性。

答案 1 :(得分:2)

第一种方式更好。原因:它更具可读性。

虽然这是正确的,但这些结构在语义上是不同的,对于简单类型,编译器几乎肯定会优化第二种情况,就像第一种情况一样,并生成相同的机器代码,存储一个常量(在编译时计算)到room_area1

答案 2 :(得分:1)

第一个例子没有错。事实上,这样做更好,因为你可以声明变量const。