如何删除警告:从'int'转换为'char'可能会改变其值?

时间:2012-09-04 15:45:49

标签: c casting

我有一个char buf[3];数组,我需要放置:buf[0] = ch其中chint。但编译器会发出以下警告:

  

从'int'转换为'char'可能会改变其值

如何删除此内容?我试过施放到unsigned char,但没有运气。

2 个答案:

答案 0 :(得分:8)

使用明确的演员:

buf[0] = (char)ch;

答案 1 :(得分:5)

char是一个字节长,而整数通常是4个字节(实现定义) 如果你试图将一个整数转换为char,显然你会松开上面的三个字节。

如果您确定您的int不超过1个字节,则可以buf[0]=(char)ch执行此操作。否则会丢失信息。