LinuxカーネルにあるBUILD_BUG_ONマクロ。名前からやりたいことは十分に分かるんだけど、これはどういう仕組みなのかというところ。 使っている例としてarch/x86/kernel/head64.cにあるx86_64_start_kernel()を見てみるとこんな感じ。 140 asmlinkage void __init x86_64_start_kernel(char * real_mode_data) 141 { 142 int i; 143 144 /* 145 * Build-time sanity checks on the kernel image and module 146 * area mappings. (these are purely build-time and produce no code) 147 */ 148 BUILD_BUG_ON(MODU
![Linuxカーネルで見たc言語の小技:BUILD_BUG_ONマクロ - φ(・・*)ゞ ウーン カーネルとか弄ったりのメモ](https://cdn-ak-scissors.b.st-hatena.com/image/square/bfdae8d537e1b3c251c94a11de5d410f75e61ece/height=288;version=1;width=512/http%3A%2F%2Fecx.images-amazon.com%2Fimages%2FI%2F51MgH8Jmr3L.jpg)