Chinaunix首页 | 论坛 | 博客
  • 博客访问: 177073
  • 博文数量: 43
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 451
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-28 09:10
文章分类
文章存档

2016年(43)

我的朋友

分类: LINUX

2016-05-20 15:42:11

       在平时阅读代码的过程中,经常会遇到很多宏,但是有时候确实很难确定这个宏是否有被define,比如下文的代码

       在这个代码里,CONFIG_USE_IRQ有没被define过进入的分支是不一样的

点击(此处)折叠或打开

  1. #ifdef CONFIG_USE_IRQ

  2.     DECLARE_GLOBAL_DATA_PTR;

  3.     IRQ_STACK_START = _armboot_start - CFG_MALLOC_LEN - CFG_GBL_DATA_SIZE - 4;

  4.     FIQ_STACK_START = IRQ_STACK_START - CONFIG_STACKSIZE_IRQ;

  5. #endif
      可以通过下面的方法简单判断,在代码里加入 #error
    

点击(此处)折叠或打开

  1. #ifdef CONFIG_USE_IRQ

  2. #error CONFIG_USE_IRQ_xxxxxx

  3.     DECLARE_GLOBAL_DATA_PTR;

  4.     IRQ_STACK_START = _armboot_start - CFG_MALLOC_LEN - CFG_GBL_DATA_SIZE - 4;

  5.     FIQ_STACK_START = IRQ_STACK_START - CONFIG_STACKSIZE_IRQ;

  6. #endif

        这样如果这个宏被定义了,那么编译时就会报错输出#error CONFIG_USE_IRQ_xxxxxx,并终止编译.

    




阅读(1895) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~