2016-05-19 21 views
1

この警告に関するいくつかの記事を見ましたが、私の知る限り、私の問題に対処していません。複数文字の定数[-Wmultichar]

私は自分のアプリケーションでこれを宣言した:

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

これは、2回の警告を発行するコンパイラになり:

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

しかし、値がunsigned char型内にある理由。キャストの追加

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

は、2番目の警告を取り除きますが、なぜそれが必要とされ、なぜ最初の警告が残っているのでしょうか?この警告が生成され、文字が8ビットで、ないことになっていることを与えられている理由として明確な説明もなく

+0

この文字のUTF-8表現はC2 A3です。 – chris

+0

ソースファイルはUnicodeでエンコードされていますか?もしそうなら、単一のchar私は複数のことができます。 –

+0

このリンク(http://www.ascii-code.com/)に従って、£は拡張ASCII文字セットの一部であり、コードは163です。 – SPlatten

答えて

0

でもキャストが解決しなかったので、私はdidnの1に文字を変更し

16このエラーが発生します。

関連する問題