【开发笔记】一些常用的宏和函数

宏定义

COMPILE_TIME_ASSERT

源码

#define COMPILE_TIME_ASSERT(e) \
    do { \
        switch (0) { case 1:case !(e):break; } \
    } while (0)

用法

COMPILE_TIME_ASSERT(CFG_MMAP_REGIONS >= 13);

说明

  • 参数表达式为真,编译通过
  • 参数表达式不为真,编译会由于程序中存在相同 case 值而报错退出

举例

# gcc main.c -o main
main.c: In function ‘main’:
main.c:5:29: error: duplicate case value
    5 |         switch (0) { case 1:case !(e):break; } \
      |                             ^~~~
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注