static const unsigned char BitsSetTable256[256] =
{
# define B2(n) n, n+1, n+1, n+2
# define B4(n) B2(n), B2(n+1), B2(n+1), B2(n+2)
# define B6(n) B4(n), B4(n+1), B4(n+1), B4(n+2)
B6(0), B6(1), B6(1), B6(2)
};
このコードはセット ビット問題で非常に有名です。コンパイル時にルックアップ テーブルを出力する方法を理解しました。
しかし、これにはもっと直感が必要です..
B2(n)、B4(n)、B6(n)の意味は??
そして、この再帰マクロに帰着する基本的なアイデアは何ですか??
編集された再帰の背後にあるアイデアは何ですか