Široké znaky
ANSI 3.1.3.4 Hodnota celočíselné znakové konstanty, která obsahuje více než jeden znak nebo širokou znakovou konstantu, která obsahuje více než jeden vícebajtový znak
Běžná znaková konstanta 'ab' má celočíselnou hodnotu (int)0x6162. Pokud existuje více bajtů, posunou se dříve přečtené bajty o hodnotu CHAR_BIT a další bajt se porovná pomocí bitového operátoru OR s nízkými CHAR_BIT bity. Počet bajtů ve vícebajtové znakové konstantě nemůže překročit hodnotu sizeof(int), která je pro 32bitový cílový kód 4.
Vícebajtová znaková konstanta je přečtena dle popisu výše a hodnota je převedena na konstantu širokého znaku pomocí funkce modulu runtime mbtowc
. Není-li výsledek platnou konstantou širokého znaku, je vygenerována chyba. V každém případě je počet bajtů vyšetřených funkcí mbtowc
omezen na hodnotu MB_CUR_MAX
.