Я не знал, что C и С++ позволяют multicharacter literal
: not 'c' (типа int в C и char в С++), но "tralivali" (типа int!)
enum
{
ActionLeft = 'left',
ActionRight = 'right',
ActionForward = 'forward',
ActionBackward = 'backward'
};
Стандарт говорит:
C99 6.4.4.4p10: "Значение целочисленная константа символа, содержащая более одного символа (например, 'ab'), или содержащий символ или побег последовательность, не отображающая однобайтовый символ выполнения, от реализации".
Я обнаружил, что они широко используются в C4 engine. Но я полагаю, что они небезопасны, когда мы говорим о независимой от платформы сериализации. Тей может сбивать с толку и потому, что выглядят как струны. Итак, что такое многозначный литеральный объем использования, они полезны для чего-то? Являются ли они на С++ только для совместимости с C-кодом? Они считаются плохой функцией как оператор goto или нет?