Могу ли я сказать, что базовое представление объекта (битовый шаблон) в каждом из следующих определений одинаково?
char c = 240;
unsigned char c = 240;
signed char c = 240;
Итак подписанный-Несс имеет значение только тогда, когда c
используется в выражении (или бросает)?
В общем случае неверно говорить, что картина одинакова, если диапазон signed char
не покрывает 240
, Если 240
вне диапазона, результат этой инициализации переполнения определяется реализацией (и может привести к появлению сигнала, см. 6.3.1.3/3). То же самое относится и к char
инициализация, если она подписана.
Язык гарантирует совпадение представлений только для общей части диапазонов signed char
а также unsigned char
, Например. это гарантированно производить тот же шаблон
char c = 10;
unsigned char c = 10;
signed char c = 10;
С 240
в общем случае такой гарантии нет (при условии, что она выходит за пределы допустимого диапазона).
Других решений пока нет …