Я только начал читать стандарт ISO C 2011, ну, последний публичный проект его [1], и понял, что в C Lexical Grammer [1] [458ff.] Все (литералы) числовые константы беззнаковые ,ISO C и подписанные литеральные константы
Означает ли это, что компилятор интерпретирует подписанную численную константу (например, -5.1E10 или -1) как вызов соответствующего унарного оператора? например -1 < => - (1), +512 < => + (512)
ОБНОВЛЕНИЕ: Моя вина, "все (буквенные) числовые константы без знака" Я «означают все (буквенные) числовые константы неотрицательны»
Regard, Томас
Нет, не все литералы подписаны, вы, вероятно, имеете в виду «все десятичные литералы без суффикса' U', подписанные ». Октальные и шестнадцатеричные литералы могут быть без знака, даже без суффикса 'U'. –
Исправить. +1. –