我有一个char buf[3];
数组,我需要放置:buf[0] = ch
其中ch
是int
。但编译器会发出以下警告:
从'int'转换为'char'可能会改变其值
如何删除此内容?我试过施放到unsigned char
,但没有运气。
答案 0 :(得分:8)
使用明确的演员:
buf[0] = (char)ch;
答案 1 :(得分:5)
char是一个字节长,而整数通常是4个字节(实现定义) 如果你试图将一个整数转换为char,显然你会松开上面的三个字节。
如果您确定您的int不超过1个字节,则可以buf[0]=(char)ch
执行此操作。否则会丢失信息。