减少dependencies
// breaks when adding a register
#define NREG 5 // 隐藏假设 max{RA, RB, ... PC} == (NREG - 1)
// breaks when changing register size
#define NREG (sizeof(R) / sizeof(u8)) // 隐藏假设寄存器是 8-bit
// never breaks
#define NREG (sizeof(R) / sizeof(R[0])) // 但需要 R 的定义
// even better (why?)
enum { RA, ... , PC, NREG }预处理显示
gcc -E test.c | indent - | vim