2

配置する必要がある char buf[3];配列がbuf[0] = chありchますint。ただし、コンパイラは次の警告を出します。

「int」から「char」への変換により、その値が変更される場合があります

これを削除するにはどうすればよいですか? にキャストしようとしましたunsigned charが、うまくいきませんでした。

4

2 に答える 2

8

明示的なキャストを使用します。

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

char は 1 バイトの長さですが、integer は通常 4 バイトです (実装によって定義されます)。
整数を char にキャストしようとすると、明らかに上位 3 バイトが失われます。

buf[0]=(char)chint が 1 バイトを超えないことが確実な場合は、 で行うことができます。そうしないと、情報が失われます。

于 2012-09-04T15:49:39.323 に答える