您当前的位置: 首页 >  ar

phymat.nico

暂无认证

  • 2浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

narrowing conversion of 'XXX' from 'int' to 'char' inside{}

phymat.nico 发布时间:2020-02-08 15:03:16 ,浏览量:2

问题前提:

代码中有一段十六进制表示中文的,

例如: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 };

根据不同情况进行使用。

关注
打赏
1659628745
查看更多评论
立即登录/注册

微信扫码登录

0.0898s