11.3 ビット操作命令の出力を制御する方法 【V1.05.00以降】
組み込み関数を使用せずにビット操作命令を出力したい場合は,次の条件をすべて満たしてください。
(b) | 代入先を1バイト型で1ビット幅のビットフィールドにする |
ビット操作命令を出力したくない場合は,上記の(c)を満たしたうえで,(a)の代入値を定数値以外にするか,または(b)の型を1バイト型以外の型にしてください。
上記のいずれにも該当しない場合,ビット操作命令を出力するかどうかは,最適化レベルやソース・プログラムの記述内容によってコンパイラが自動的に判別します。
注意 | 1バイト型は,(char/unsigned char/signed char/_Bool)を指します。 |
volatile struct {
unsigned char bit0:1;
unsigned int bit1:1;
} data;
void func(void) {
data.bit0 = 1; /* ビット操作命令を出力する */
data.bit1 = 1; /* ビット操作命令を出力しない */
}
|