Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
配置する必要がある char buf[3];配列がbuf[0] = chありchますint。ただし、コンパイラは次の警告を出します。
char buf[3];
buf[0] = ch
ch
int
「int」から「char」への変換により、その値が変更される場合があります
これを削除するにはどうすればよいですか? にキャストしようとしましたunsigned charが、うまくいきませんでした。
unsigned char
明示的なキャストを使用します。
buf[0] = (char)ch;
char は 1 バイトの長さですが、integer は通常 4 バイトです (実装によって定義されます)。 整数を char にキャストしようとすると、明らかに上位 3 バイトが失われます。
buf[0]=(char)chint が 1 バイトを超えないことが確実な場合は、 で行うことができます。そうしないと、情報が失われます。
buf[0]=(char)ch