相关疑难解决方法(0)

C编译器断言 - 如何实现?

我想在错误的情况下实现一个"断言"来阻止编译,而不是在运行时失败.

我目前有一个这样的定义,它工作得很好,但它增加了二进制文件的大小.

#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)

我如何实现它,以便它不生成任何代码(为了最小化生成的二进制文件的大小)?

c compiler-construction assertions

41
推荐指数
4
解决办法
4万
查看次数

标签 统计

assertions ×1

c ×1

compiler-construction ×1