【发布时间】:2015-06-08 16:10:51
【问题描述】:
我想为所有X(a, b) 其中a > b 生成X 宏的编译时错误
/* 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)
【问题讨论】:
-
这甚至没有意义..
-
有道理。我已经用一些例子编辑了这个问题。
-
是的。这些东西是非常特定于编译器和特定语言版本的,这意味着不是我的专业领域。