1. ホーム
  2. c++

[解決済み] C++で短いリテラルを書くには?

2022-06-30 21:39:52

質問

非常に基本的な質問です。 short リテラルをどのように書けばよいのでしょうか?

私は以下のことを知っています。

  • 2int
  • 2Uunsigned int
  • 2Llong
  • 2LLlong long
  • 2.0ffloat
  • 2.0double
  • '\2'char .

しかし、どのように書けば short リテラルをどう書くか? 試しに 2S を試してみましたが、これはコンパイラの警告を出します。

どのように解決するのですか?

((short)2)

そうですね、厳密にはshort literalではなく、casted-intに近いですが、挙動は同じで、直接的な方法はないと思います。

それについて何も見つからなかったので、私がやっていることです。コンパイラーはこれをショート リテラルであるかのようにコンパイルするほど賢いと思います (つまり、実際に int を割り当てて毎回キャストすることはないでしょう)。

以下は、このことをどの程度心配しなければならないかを示しています。

a = 2L;
b = 2.0;
c = (short)2;
d = '\2';

コンパイル -> 逆アセンブル ->

movl    $2, _a
movl    $2, _b
movl    $2, _c
movl    $2, _d