1

言い換えれば、メモリおよび/または速度による実行時のパフォーマンスに関して (理解と可読性が与えられている場合)、これら 2 つのコード ブロックは同等ですか、それとも異なりますか?

A、最初の使用に近いことを宣言します。

double A = /*...*/
double B = /*...*/

if(A > B) return false;

double C = /*...*/
double D = /*...*/

if(C < D) return false;

double E = /*...*/
double F = /*...*/

if(E > F) return false;

double G = /*...*/
double H = /*...*/

if(G < H) return false;

return true;

B、最初にすべての変数を宣言します。

double A = /*...*/
double B = /*...*/
double C = /*...*/
double D = /*...*/
double E = /*...*/
double F = /*...*/
double G = /*...*/
double H = /*...*/

if(A > B) return false;
if(C < D) return false;
if(E > F) return false;
if(G < H) return false;
return true;
4

3 に答える 3

2

いいえ -- 少なくとも私が知っているどのコンパイラでも、これらは同等の (通常は同一の) オブジェクト コードを生成します。

于 2013-09-10T04:38:35.447 に答える
0

ただし、それは問題ではありません。その方がはるかに読みやすいため、常に変数を最初に宣言します。

あらゆる場所で宣言を混ぜ始めてインデントすると、それらを非表示にすることができます。または、後日コードを変更したい場合や、スコープ外にアクセスする必要がある場合は、とにかくそれを移動する必要があります (面倒な場合とそうでない場合があります)

于 2013-09-10T04:55:53.940 に答える