Вы создаете универсальное имя персонажа путем присоединения лексем с ##
оператор
Этот дефект происходит когда две лексемы предварительной обработки, к которым соединяют с ##
оператор создает универсальное имя персонажа. Универсальное имя персонажа начинается с \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 |
Удар: низко |