我想在错误的情况下实现一个"断言"来阻止编译,而不是在运行时失败.
我目前有一个这样的定义,它工作得很好,但它增加了二进制文件的大小.
#define MY_COMPILER_ASSERT(EXPRESSION) switch (0) {case 0: case (EXPRESSION):;}
Run Code Online (Sandbox Code Playgroud)
示例代码(无法编译).
#define DEFINE_A 1
#define DEFINE_B 1
MY_COMPILER_ASSERT(DEFINE_A == DEFINE_B);
Run Code Online (Sandbox Code Playgroud)
我如何实现它,以便它不生成任何代码(为了最小化生成的二进制文件的大小)?