多字符字符常量 [-Wmultichar]

multi-character character constant [-Wmultichar]

我看过几篇关于此警告的帖子,但据我所知,none 解决了我的问题。

我在我的申请中声明了这一点:

    const unsigned char clsXMLnode::mcucAttrMacroDelimiter = '£';

这会导致编译器发出两个警告:

   multi-character character constant [-Wmultichar]
   large integer implicitiy truncated to unsigned type [-Woverflow]

但为什么值仍然在 unsigned char 中。

添加演员表:

    const unsigned char clsXMLnode::mcucAttrMacroDelimiter = (unsigned char)'£';

摆脱了第二个警告,但为什么需要它,为什么第一个警告仍然存在?

没有任何明确解释为什么会产生此警告,并且假设一个字符应该是 8 位,而不是 16 位。

即使转换也没有解决,所以我将角色更改为不会导致此错误的角色。