0

読みやすさのために砂糖として使用する以外にchar firstLetter=word[0];何もしない場合を考えてみてください。firstLetterそれ以外#defineに、新しいメモリを割り当てる代わりに、インラインの「エイリアス」を作成できるものはありますか?スクリプトを書くことができると思いますが、何かがすでに存在する場合は...

4

2 に答える 2

1

ここで行われるメモリ割り当てはありません。の値はword[0]レジスタまたはスタックにコピーできますが、これを行う必要があるかどうかはコンパイラ次第です。

「インライン エイリアス」を使用すると、はるかに悪いコードが生成されることに注意してください。この式はword[n]、ある種の置換を使用した場合に複数回繰り返される計算を意味します。

于 2012-05-28T00:23:43.470 に答える
0

質問が本当に C++ に関するものである場合、いつでもオブジェクトのエイリアスを作成できます。

char& firstLetter=word[0];

これにより、(が配列であり、後で変更されるポインターではないものと仮定して) のfirstLetterエイリアスが作成されます。word[0]word

于 2012-05-28T07:54:16.280 に答える