在平时阅读代码的过程中,经常会遇到很多宏,但是有时候确实很难确定这个宏是否有被define,
比如下文的代码,
在这个代码里,
CONFIG_USE_IRQ有没被define过进入的分支是不一样的
-
#ifdef CONFIG_USE_IRQ
-
-
DECLARE_GLOBAL_DATA_PTR;
-
-
IRQ_STACK_START = _armboot_start - CFG_MALLOC_LEN - CFG_GBL_DATA_SIZE - 4;
-
-
FIQ_STACK_START = IRQ_STACK_START - CONFIG_STACKSIZE_IRQ;
-
-
#endif
可以通过下面的方法简单判断,在代码里加入 #error
-
#ifdef CONFIG_USE_IRQ
-
-
#error CONFIG_USE_IRQ_xxxxxx
-
-
DECLARE_GLOBAL_DATA_PTR;
-
-
IRQ_STACK_START = _armboot_start - CFG_MALLOC_LEN - CFG_GBL_DATA_SIZE - 4;
-
-
FIQ_STACK_START = IRQ_STACK_START - CONFIG_STACKSIZE_IRQ;
-
-
#endif
这样如果这个宏被定义了,那么编译时就会报错输出#error CONFIG_USE_IRQ_xxxxxx,并终止编译.
阅读(1895) | 评论(0) | 转发(0) |