Является ли -5
целым литералом? Или 5
литерал, а -5
- это выражение с унарным минусом, принимающим литерал в качестве аргумента? Вопрос возник, когда мне было интересно, как жестко закодировать наименьшие значащие целочисленные значения.
Является ли -5 целочисленным литералом?
Ответ 1
Это унарный минус, за которым следует 5 как целочисленный литерал. Да, это несколько затрудняет представление наименьшего возможного целого в двойном дополнении.
Ответ 2
Как Джерри Коффин сказал, знак минуса не является частью литерала. Что касается того, как решить свой окончательный вопрос,
Мне было интересно, как жестко закодировать наименьшие значащие целочисленные значения
Это то, что INT_MIN
(и тому подобное в limits.h
или stdint.h
или где угодно).
Если вы посмотрите, как определяется INT_MIN
, вероятно, он будет выглядеть примерно как (-2147483647 - 1)
для решения проблемы, поднятой вопросом.