エラー出力 - BUILD_BUG_ON()
概要
コンパイル時にエラーを出力する
詳細
__CHECKER__と__OPTIMIZE__の値によって以下のように処理が異なる
- __CHECKER__が有効
- 何もしない
- __OPTIMIZE__が有効
((void)sizeof(char[1 - 2*!!(condition)]))
のコードにより、conditionが0以外の場合にコンパイルエラーを出力させる
- それ以外
- コンパイル時にBUILD_BUG_ON_MSG()に"BUILD_BUG_ON failed: [condition]"というメッセージでエラーを出力させる