2

我有一个 char buf[3];需要放置buf[0] = chch数组: int. 但编译器给出以下警告:

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

我该如何删除这个?我试过投,unsigned char但没有运气。

4

2 回答 2

8

使用显式强制转换:

buf[0] = (char)ch;
于 2012-09-04T15:47:21.757 回答
5

一个 char 是一个字节长,而一个整数通常是 4 个字节(实现定义)。
如果您尝试将整数转换为 char,显然您会丢失前三个字节。

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

于 2012-09-04T15:49:39.323 回答