0

変数内で初期化して算術演算を行うのは悪い習慣ですか? つまり、面積を見つける必要がある異なる面積の部屋が複数あるとします。

(フィートの例)

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;

ここで 2 つの方法に違いはありますか、それとも同じことであり、単にスタイルの問題ですか?

4

3 に答える 3

2

1 つ目はInitializationという 1 つの操作のみを含み、
2 つ目はInitialization + Assignmentという 2 つの操作を含みます。

オーバーヘッドのような固有のデータ型の場合double、オーバーヘッドは無視できますが、ユーザー定義のデータ型の場合、2 番目はパフォーマンスに悪影響を及ぼします (どのくらいですか? プロファイリングはそれを伝える必要があります)。

したがって、一般的には、次の理由から First を使用することをお勧めします。

  • Secondより速くない場合でも、少なくとも同じくらい速いことが保証されています
  • より読みやすくなっています。
于 2013-01-25T06:09:38.980 に答える
2

最初の方法の方が優れています。理由: より読みやすくなります。

これらの構造が意味的に異なることは正しいですが、単純な型の場合、コンパイラはほぼ確実に 2 番目のケースを最初のケースのように最適化し、同じマシン コードを生成して、(コンパイル時に計算された) 定数を に格納しroom_area1ます。

于 2013-01-25T06:09:39.693 に答える
1

最初の例に問題はありません。実際には、変数 const を宣言できるため、その方が優れています。

于 2013-01-25T06:11:18.920 に答える