Вы создаете универсальное имя персонажа путем присоединения лексем с оператором ##
Универсальное имя персонажа от маркерной конкатенации происходит, когда две лексемы предварительной обработки, к которым соединяют с оператором ##
, создают универсальное имя персонажа. Универсальное имя персонажа начинается с \u
или \U
, сопровождаемого шестнадцатеричными цифрами. Это представляет символ, не найденный в наборе основного символа.
Например, вы формируете символьный \u0401
путем присоединения двух лексем:
#define assign(uc1, uc2, val) uc1##uc2 = val ... assign(\u04, 01, 4);
Стандарт C11 (Секунда. 5.1.1.2), утверждает, что, если универсальное имя персонажа формируется маркерной конкатенацией, поведение не определено.
Используйте универсальное имя персонажа непосредственно вместо того, чтобы произвести его посредством маркерной конкатенации.
Группа: Программирование |
Язык: C | C++ |
Значение по умолчанию: на |
Синтаксис командной строки:
PRE_UCNAME_JOIN_TOKENS |
Влияние: низко |