Renesas Synergy™

FAQ 3000009 : W0520171メッセージ(CC-RL)

Q : 質問

RL78コンパイラCC-RLを使用しています。RAMのアドレスの値をポインタに代入しようとすると、次のメッセージが出力されるのですが、対処方法を教えてください。 「W0520171:不正な型変換です。」 (例) unsigned char  *p; p = (unsigned char *)0xffd00;

A : 回答

near属性のポインタに16進数5桁の値を代入しようとしているために、メッセージが出力されています。

CC-RLの変数のnear属性でアクセスするアドレスの範囲は、0xf0000~0xfffffです。nearポインタには、5桁目の「f」を削除した0x0000~0xffffの値が入ります。
そのため、アドレスの定数の16進数5桁目が「f」の場合には、5桁目の[f」を削除した値にしてください。
(例)
p = (unsigned char *)0xfd00;

アドレスの値の範囲が、0xf0000~0xfffff以外である場合は、ポインタをfar属性にしてください。
(例)
__far unsigned char  *p;
p = (__far unsigned char *)0x1fd00;

適用製品

e² studio
CS+ (旧 CubeSuite+)
RL78ファミリ用Cコンパイラパッケージ
他にご質問がございましたら、リクエストを送信してください