C での Short データ型のリテラル表現
C では、 int、unsigned int、unsigned int など、さまざまなデータ型に対してさまざまなリテラル表現が存在します。 long、float、double、char。ただし、短いデータ型のリテラル表現に関するクエリがあるようです。
この問題は、明示的な短いリテラル構文が欠如しているために生じます。他のデータ型と同様に、「2S」などの試行ではコンパイラ警告が生成されます。応答によって提供される解決策は、キャストを使用することです。
短いリテラルを表すには、構文 (short)2 を使用できます。厳密には短いリテラルではありませんが、このキャストは同じ動作を実現します。コンパイラーはコンテキストを推論してコードを効率的に最適化し、不必要な int の割り当てとキャストを回避します。
わかりやすくするために、次のコード スニペットのアセンブリ出力を調べてみましょう。
<code class="cpp">a = 2L; b = 2.0; c = (short)2; d = '';</code>
逆アセンブラーの出力リテラル (2L、2.0、(short)2、'2') で割り当てられたすべての変数が、movl 命令を使用して値 2 で初期化されることがわかります。この動作は、コンパイラがキャストを効果的に処理し、コードに関係なくコードを最適化していることを示しています。リテラル表現
以上がC で短いリテラルをどのように表現しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。