Выбор типа для буквенных числовых значений в C
мне интересно об этом: когда я пытаюсь назначить целочисленное значениеint
переменная (16-битный компилятор, 2 байта для целых чисел) let 's сказать:
int a;
a=40000;
это может't будет представлен диапазоном типа, который будет обрезан. Но что ям видя, что результирующее значение в является битовой комбинацией для -25000 (или некоторого близкого числа), что означает, что двоичное представление, которое компилятор выбирает для десятичного 40000, было целочисленным представлением без знака. И это поднимает мой вопрос: как компилятор выбирает тип для этого литерального выражения?
Я предполагаю, что он использует тип, способный обрабатывать значение с меньшим объемом памяти.