我想为所有X(a, b)
地方的 X-macro 生成编译时错误a > b
/* X(a, b) */
#define LIST \
X(10, 20) \
X(5, 20) \
X(30, 20) \
X(1, 20)
所以,产生错误X(30, 20)
这在C中可能吗?
编辑:示例用法 对我来说,左边的数字是一些大型结构的例如 sizeof,右边的数字是存储这个结构的固定空间。如果结构大于可用空间,我需要编译器生成错误。
//e.g.
X(sizeof(struct conf), 2*PAGE)