組み込みでCを使っています。
c
1UCHAR send_buffer[BUF_SIZE]; 2 3sprintf((CHAR*)send_buffer, "%s\n", HOGE);
UCHAR
はunsigned char
で、CHAR
はchar
としてtypedefされています。
上記のコードで、(CHAR*)
によるキャストを行わないと、
pointer targets in passing argument 1 of 'sprintf' differ in signedness
といったwarningが出てきます。
warningが煩わしいのでキャストしたいのですが、これによる問題としてどんなことが考えられるでしょうか? あるいは特に問題はないですか?
send_buffer
の型をCHAR
にすればよいのですが、使用しているライブラリの都合の関係で、そうはできない状態です。
よろしくお願いします。
【追記】
char
はsigned char
です。
【追記2】
皆様回答有り難うございました。
(UCHAR*)
から(CHAR*)
にキャストしても内部表現のビット列は変化しないため、大丈夫だろうという判断をいたしました。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。