非常に基本的な質問です: short
C++ でリテラルを記述するにはどうすればよいでしょうか?
私は次のことを知っています:
2
はint
2U
はunsigned int
2L
はlong
2LL
はlong long
2.0f
はfloat
2.0
はdouble
'\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