私は理解しているように、私が持っている場合:分岐予測と変数宣言
if(case 1)
{
char x[] = "1";
printf("%s",x);
}
else if(case 2)
{
char x[] = "12";
printf("blah-blah-blah\n");
printf("%s",x);
}
はその後、私のコンパイラは実行フローを改善するために、コードを入力します支店、およびこの方法を予測しようとします。私はこの関数の先頭に私のchar x[MAX_SIZE]
を作成することができ、この方法で冗長な宣言を避けることができます(分岐予測子が間違っている場合)が、おそらく必要以上に長い配列を作成できます。配列の宣言を関数の頭に動かすか、if-elseの各ケースの中に置いておくのは良い考えですか?
編集:このコードのパフォーマンスの変更はほとんどなく、おそらく認識されませんが、プリンシパルについての質問です。私の知る限りは、あなたの質問を理解できるよう
注: '' 1 ''は' char'ではありません - 'string'です。パフォーマンスに関しては、最適化とメモリ節約はごくわずかです。 –
この例では、分岐予測の影響は無駄です。ランタイムは、printf()関数呼び出しによって完全に支配されています。 – wildplasser
@BatCoder私は文字列であることを意味しました。別に言及しましたか? – CIsForCookies