Renesas Synergy™

FAQ 1011871 : W0523082メッセージ(CC-RL)

Q : 質問

RL78コンパイラCC-RLを使用しています。ポインタに変数のアドレスを設定しようとしているのですが、次のメッセージが出ます。  「W0523082:偶数アライメントのオブジェクトを指すポインタが奇数番地を保持しています。」

 (例)
unsigned char c;
unsigned short *p;
p = (unsigned short *)&c;


A : 回答

RL78ファミリは、マイコンとしてミスアライメントアクセス(奇数番地への2バイトアクセス)に対応していません。
そのため、メッセージを出力しています。
上記の例では、変数cの整列条件は1バイト、ポインタ変数pは整列条件2バイトへのポインタとなっています。
異なる型でのアクセスの場合には、共用体でアクセスする型をすべて定義して、アクセスする型にあったメンバ名でアクセスしてください。
(例)
union {
 unsigned char c;
 unsigned short s;
}u;
unsigned short *p;
p =&u.s;

適用製品

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