本文主要是介绍narrowing conversion of 'XXX' from 'int' to 'char' inside{},希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题前提:
代码中有一段十六进制表示中文的,
例如:char a[] = { 0xE5, 0x85, 0xB6, 0xE5, 0xAE, 0x83, 0x00 };
使用g++ test.cpp 编译时没有问题,但如果使用g++ -std=c++0x test.cpp编译就会报标题的错。
问题原因大概是使用-std=c++0x后,char类型范围出现了缩减,导致了报错。
修改方案:
将char中十六进制数据强制转成char,
char a[] = { (char)0xE5, (char)0x85, (char)0xB6, (char)0xE5, (char)0xAE, (char)0x83, (char)0x00 };
或者使用unsigned char a[] = { 0xE5, 0x85, 0xB6, 0xE5, 0xAE, 0x83, 0x00 };
根据不同情况进行使用。
这篇关于narrowing conversion of 'XXX' from 'int' to 'char' inside{}的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!