((short)2)
Так, це не зовсім короткий буквальний текст, скоріше кастований, але поведінка однакова, і я думаю, що це не існує прямого способу.
Це я робив, бо нічого не міг знайти про це. Я б припустив, що компілятор буде досить розумним, щоб скомпілювати це так, як якщо б це був короткий літерал (тобто він насправді не виділяв би int, а потім передавав його кожен раз).
Далі показано, як сильно ви повинні турбуватися з цього приводу:
a = 2L;
b = 2.0;
c = (short)2;
d = '\2';
Складіть -> розібрати ->
movl $2, _a
movl $2, _b
movl $2, _c
movl $2, _d