C での短いリテラルの記述
C では、 int の 2、2L など、さまざまなデータ型を表すためにいくつかのリテラル表記が使用されます。長い場合は「2」、文字の場合は「2」です。ただし、16 ビット整数を格納する短いリテラルをどのように記述するかは不明瞭かもしれません。
2S を短いリテラルとして使用しようとすると、問題が明らかになります。この表記は論理的に見えるかもしれませんが、コンパイラ警告が発生します。解決策は、キャストを使用して整数を short に明示的に変換することです。
C で short リテラルを記述するには、次の手順に従います。
このアプローチは厳密には短いリテラルではありませんが、同様に動作します。 C には、短いリテラルを表す直接的な方法がありません。
それにもかかわらず、コンパイラは、int ではなく short にメモリを割り当てるようにコードを最適化します。この動作を示す例を次に示します。
<code class="cpp">int a = 2L; double b = 2.0; short c = (short)2; char d = '';</code>
コンパイルおよび逆アセンブルすると、生成されたアセンブリ コードでは、すべての変数が正しい型であるかのようにメモリが割り当てられていることがわかります。
movl , _a movl , _b movl , _c movl , _d
したがって、C で短いリテラルを扱うときは、キャストの非効率性を気にする必要はありません。
以上がC で短いリテラルを記述するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。