Renesas Synergy™

FAQ 1011897 : ビットアクセスとE0520018、E0520065メッセージ(CC-RL)

Q : 質問

RL78コンパイラCC-RLを使用しています。変数に対してビットアクセスするために、変数の名前に「.数字」を付加したのですが、E0520018やE0520065のエラーが出力されます。対処方法を教えてください。「 E0520018:")" がありません。」  「 E0520065:";" がありません。」

A : 回答

CC-RLには、変数名に「.数字」を付けることにより、特定のビットの値を操作するコードを出力する機能はありません。
変数を共用体でバイト、ビットの双方で値を操作できるように定義してください。
(例)
typedef union {
 unsigned char ByteMem;
 struct
 {
     unsigned char no0:1;
     unsigned char no1:1;
     unsigned char no2:1;
     unsigned char no3:1;
     unsigned char no4:1;
     unsigned char no5:1;
     unsigned char no6:1;
     unsigned char no7:1;
 } BitfMem;
}Byte_Bitf_Member;

volatile Byte_Bitf_Member data;

void func(void)
{
 data.ByteMem = 1; // バイトの値に対する操作
 data.BitfMem.no7 = 1; // ビットの値対する操作
}

適用製品

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