C / C ++ лежащее в основе представление char, unsigned char и signature char

Могу ли я сказать, что базовое представление объекта (битовый шаблон) в каждом из следующих определений одинаково?

char c = 240;
unsigned char c = 240;
signed char c = 240;

Итак подписанный-Несс имеет значение только тогда, когда c используется в выражении (или бросает)?

2

Решение

В общем случае неверно говорить, что картина одинакова, если диапазон 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 в общем случае такой гарантии нет (при условии, что она выходит за пределы допустимого диапазона).

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]