ホームページ  >  記事  >  バックエンド開発  >  C で短いリテラルを記述するにはどうすればよいですか?

C で短いリテラルを記述するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-31 00:29:03623ブラウズ

How Do You Write Short Literals in C  ?

C での短いリテラルの記述

C では、 int の 2、2L など、さまざまなデータ型を表すためにいくつかのリテラル表記が使用されます。長い場合は「2」、文字の場合は「2」です。ただし、16 ビット整数を格納する短いリテラルをどのように記述するかは不明瞭かもしれません。

2S を短いリテラルとして使用しようとすると、問題が明らかになります。この表記は論理的に見えるかもしれませんが、コンパイラ警告が発生します。解決策は、キャストを使用して整数を short に明示的に変換することです。

C で short リテラルを記述するには、次の手順に従います。

  1. 整数を次のようにキャストします。 short: 整数リテラルを括弧で囲み、short にキャストします。例: (short)2

このアプローチは厳密には短いリテラルではありませんが、同様に動作します。 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。