C++ で短いリテラルを書くにはどうすればいいですか? 質問する

C++ で短いリテラルを書くにはどうすればいいですか? 質問する

非常に基本的な質問です: shortC++ でリテラルを記述するにはどうすればよいでしょうか?

私は次のことを知っています:

  • 2int
  • 2Uunsigned int
  • 2Llong
  • 2LLlong long
  • 2.0ffloat
  • 2.0double
  • '\2'は ですchar

しかし、リテラルをどのように記述すればよいのでしょうかshort? 試してみました2Sが、コンパイラの警告が出ます。

ベストアンサー1

((short)2)

はい、厳密には短いリテラルではなく、キャストされた int ですが、動作は同じであり、直接行う方法はないと思います。

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

これについてどの程度心配する必要があるかは、次のとおりです。

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

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

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

おすすめ記事