我需要在#error预处理程序指令中显示一些相关信息。
例如:
#define myConstant 5
#if myConstant > 10
#error myConstant has to be > 10, now %d //should display "5"
#endif
我怎样才能做到这一点?
最佳答案
你不能#error
不允许/支持该功能。
而是使用C11中的_Static_assert
:
#define myConstant 5
#define STRINGIFY(x) STRINGIFY_(x)
#define STRINGIFY_(x) #x
_Static_assert(myConstant > 10, "myConstant has to be > 10, now " STRINGIFY(myConstant));
输出: