问题前提:
代码中有一段十六进制表示中文的,
例如: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 };
根据不同情况进行使用。
————————————————
版权声明:本文为CSDN博主「soulsoul_god」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiadeliang1111/article/details/86699071