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).
См. Определяемое реализацией поведение в Препроцессоре C.
- Значение символьной константы с расширенным набором символов, содержащей более одного многобайтового символа или одного многобайтового символа, отображающегося на несколько членов расширенного набора символов выполнения, или содержащей многобайтовый символ или управляющую последовательность, не представленную в расширенном наборе символов выполнения (C90 6.1.3.4, C99 и C11 6.4.4.4).
См. Определяемое реализацией поведение в Препроцессоре C.
- Текущий язык, используемый для преобразования символьной константы, состоящей из одного многобайтового символа, отображающегося на член расширенного набора символов выполнения, в соответствующий код широкого символа (C90 6.1.3.4, C99 и C11 6.4.4.4).
См. Определяемое реализацией поведение в Препроцессоре C.
- Можно ли конкатенировать литералы широких строк с разными префиксами и, если да, как обрабатывается полученная последовательность многобайтовых символов (C11 6.4.5).
Конкатенация таких литералов невозможна.
- Текущий язык, используемый для преобразования широкого строкового литерала в соответствующие коды широких символов (C90 6.1.4, C99 и C11 6.4.5).
См. Определяемое реализацией поведение в Препроцессоре C.
- Значение строкового литерала, содержащего многобайтовый символ или управляющую последовательность, не представленную в наборе символов выполнения (C90 6.1.4, C99 и C11 6.4.5).
См. Определяемое реализацией поведение в Препроцессоре C.
- Кодировка любого из
wchar_t,char16_t, иchar32_t, где соответствующая стандартная макрокоманда кодирования (__STDC_ISO_10646__,__STDC_UTF_16__, или__STDC_UTF_32__) не определена (C11 6.10.8.2).См. Определяемое реализацией поведение в Препроцессоре C. Литералы
char16_tиchar32_tвсегда закодированы в UTF-16 и UTF-32 соответственно.
Далее: Реализация целых чисел, Предыдущее: Реализация идентификаторов, Вверх: Реализация C [Содержание][Индекс]
© Free Software Foundation
Licensed under the GNU Free Documentation License, Version 1.3.
https://gcc.gnu.org/onlinedocs/gcc-12.2.0/gcc/Characters-implementation.html