Что на самом деле относится к "типу символов" в C11 - помимо char, конечно?
Точнее, специальные исключения для типа символа (например, к любому объекту можно получить выражение lvalue типа символа - см. § 6.5/7 в стандарте C11), к которому применяются конкретные типы? Кажется, они относятся к uint8_t и int8_t из stdint.h, но это гарантировано? С другой стороны, gcc не рассматривает char16_t от uchar.h как "характерный тип".