我不知道C和C++允许使用多字符字面量:不是 'c'(在C中为int类型,在C++中为char类型),而是 'tralivali'(属于int类型!)
enum
{
ActionLeft = 'left',
ActionRight = 'right',
ActionForward = 'forward',
ActionBackward = 'backward'
};
标准规定:
C99 6.4.4.4p10:“包含多个字符(例如,'ab')或包含不映射到单字节执行字符的字符或转义序列的整数字符常量的值是实现定义的。”
我发现它们在C4引擎中被广泛使用。但是我认为在谈论平台无关的序列化时它们并不安全。它们可能会造成混淆,因为它们看起来像字符串。那么多字符字面量的使用范围是什么?它们有什么用处吗?它们在C++中只是为了与C代码兼容吗?它们被认为是像goto操作符一样的不好的特性吗?
goto
并不是一个坏的特性。它比多字符字面量要更有用。请注意,这只是翻译,没有解释或额外内容。 - Steve Mint id ='MYCP';
苹果会将您的开发者ID告诉您作为字符文字而不仅仅是一个无聊的整数。 - Martin York0
,从而破坏您的代码。 - L. F.