11.1.8 ビット操作命令の出力制御 【V1.04以降】
組み込み関数を使用せずにビット操作命令を出力したい場合は,次の条件を全て満たしてください。
(b) | 代入先をnear領域のchar/unsigned char/signed char/_Bool型で1ビット幅のビットフィールドにする。 |
volatile修飾した変数は,上記の条件を満たさない限り,値の代入や読み出しにおいてビット操作命令を出力しません。volatile修飾していない変数は,コンパイラの最適化に従ってビット操作命令を出力します。
volatile struct {
unsigned char bit0:1;
unsigned int bit1:1;
} data;
void func(void) {
data.bit0 = 1; /* ビット操作命令を出力する */
data.bit1 = 1; /* ビット操作命令を出力しない */
}
|