在单个变量中进行初始化和计算的错误做法? Visual C ++

问题描述 投票:0回答:3

在变量中进行初始化和算术运算是否不好? 即说我有多个面积不同的房间,我必须找到以下区域:

(以英尺为单位)

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;

这两种方式之间是否存在差异,或者是同一件事,还是一个风格问题?

visual-c++ variables initialization arithmetic-expressions
3个回答
2
投票

首先只涉及一个操作: 初始化
而第二个涉及两个操作: 初始化+赋值

对于像double这样的固有数据类型,开销可以忽略不计,但是对于用户定义的数据类型,第二个对性能有害( 多少?概要分析应该说明这一点 )。

因此,通常最好使用First,因为:

  • 如果不快于第二,则保证至少与之一样快
  • 它更具可读性。

2
投票

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

正确的是,这些构造在语义上是不同的, 对于简单类型 ,编译器几乎可以肯定会优化第二种情况,使其类似于第一种情况,并生成相同的机器代码,并将一个常量(在编译时计算出)存储到room_area1


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.