4.4 Символы
- Количество бит в байте (C90 3.4, C99 и C11 3.6).
Определяется ABI.
- Значения элементов набора символов исполнения (C90, C99 и C11 5.2.1).
Определяется ABI.
- Уникальное значение элемента набора символов исполнения, генерируемое для каждой стандартной буквенной последовательности эскейпа (C90, C99 и C11 5.2.2).
Определяется ABI.
- Значение объекта
char, в который был сохранён любой символ, кроме элемента основного набора символов исполнения (C90 6.1.2.5, C99 и C11 6.2.5).Определяется ABI.
- Какой из
signed charилиunsigned charимеет тот же диапазон, представление и поведение, что и «обычный»char(C90 6.1.2.5, C90 6.2.1.1, C99 и C11 6.2.5, C99 и C11 6.3.1.1).Определяется ABI. Параметры
-funsigned-charи-fsigned-charизменяют значение по умолчанию. См. Параметры, контролирующие диалект C. - Сопоставление элементов набора символов источника (в символьных константах и строковых литералах) с элементами набора символов исполнения (C90 6.1.3.4, C99 и C11 6.4.4.4, C90, C99 и C11 5.1.1.2).
Определяется ABI.
- Значение целочисленной символьной константы, содержащей более одного символа или содержащей символ или последовательность эскейпа, которые не отображаются в однобайтовый символ исполнения (C90 6.1.3.4, C99 и C11 6.4.4.4).
- Значение константы широкого символа, содержащей более одного многобайтового символа или одиночный многобайтовый символ, отображающийся на несколько элементов расширенного набора символов исполнения, или содержащей многобайтовый символ или последовательность эскейпа, не представленных в расширенном наборе символов исполнения (C90 6.1.3.4, C99 и C11 6.4.4.4).
- Текущий локали, используемый для преобразования константы широкого символа, состоящей из одного многобайтового символа, отображающегося на элемент расширенного набора символов исполнения, в соответствующий код широкого символа (C90 6.1.3.4, C99 и C11 6.4.4.4).
- Возможность конкатенации токенов строковых литералов с разными префиксами и, в случае возможности, обработка результирующей многобайтовой последовательности символов (C11 6.4.5).
Такие токены не могут быть конкатенированы.
- Текущий локали, используемый для преобразования строкового литерала широкого символа в соответствующие коды широкого символа (C90 6.1.4, C99 и C11 6.4.5).
- Значение строкового литерала, содержащего многобайтовый символ или последовательность эскейпа, не представленные в наборе символов исполнения (C90 6.1.4, C99 и C11 6.4.5).
- Кодировка любого из
wchar_t,char16_t, иchar32_t, где соответствующая стандартная макрокоманда (__STDC_ISO_10646__,__STDC_UTF_16__, или__STDC_UTF_32__) не определена (C11 6.10.8.2).См. Определяемое реализацией поведение. Литералы
char16_tиchar32_tвсегда закодированы в UTF-16 и UTF-32 соответственно.
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-4.9.4/gcc/Characters-implementation.html