>>23
↓これと
> #define PP_APPLY_7(m, a, ...) EXPAND(m a) EXPAND(PP_APPLY_6(m, __VA_ARGS__))
↓これをふやす。
> #define PP_NARGS(...) \
> EXPAND(PP_NARGS_(__VA_ARGS__,7,6,5,4,3,2,1,0))
> #define PP_NARGS_(x1,x2,x3,x4,x5,x6,x7,N,...) N
C99ではマクロ引数は127個以上をサポートする事になってるから
100個まではOKで、その先はコンパイラの実装依存

> 全く理解できません。どうやるんでしょう...
マクロで展開している部分を、簡単なプログラム(スクリプトなど)を作って
実際に展開したソースファイルを生成する。
100個以上あるなら、オレはこっちの方法を選択する。

>>24
欠陥数は修正量に比例するので、修正量を減らそうとする努力は正しい。
100-200あるならマクロで誤魔化すのが正しいとは思わないが。