条件编译 #if

1.条件编译中使用的预编译指令

#define 定义一个预处理宏
#undef 取消宏的定义

#if 编译预处理中的条件命令,相当于C语法中的if语句
#ifdef 判断某个宏是否被定义,若已定义,执行随后的语句
#ifndef 与#ifdef相反,判断某个宏是否未被定义
#elif 若#if, #ifdef, #ifndef或前面的#elif条件不满足,则执行#elif之后的语句,相当于C语法中的else-if
#else 与#if, #ifdef, #ifndef对应, 若这些条件不满足,则执行#else之后的语句,相当于C语法中的else
#endif #if, #ifdef, #ifndef这些条件命令的结束标志.
defined  与#if, #elif配合使用,判断某个宏是否被定义、

使用方法 1.
可以防止头文件被多次使用,以及调用
这里我们设置的头文件的名字是 bsp_usart.h

#ifndef __BSP_USART_H
#define __BSP_USART_H

#endif /* __BSP_USART_H*/

使用方法 2.
在代码处或者 宏定义处 使用条件编译 选定某一段代码执行,或者选定某一段宏定义执行,提高文件的可移植性

这里我们以定时器为例子

//首先定义几个宏定义用于条件编译的判断
//当我们使用定时器2的时候就让该宏定义置1 
#define GENERAL_TIM2    1
#define GENERAL_TIM3    0
#define GENERAL_TIM4    0
#define GENERAL_TIM5    0
//定时器2的宏
#if GENERAL_TIM2
#define GENERAL_TIM    TIM2
//定时器3的宏
#elif GENERAL_TIM3    
#define GENERAL_TIM    TIM3
//定时器4的宏
#elif GENERAL_TIM4
#define GENERAL_TIM    TIM4
//定时器5的宏
#elif GENERAL_TIM5
#define GENERAL_TIM    TIM4
#endif 
//使用endif结尾
上一篇:python判断语句


下一篇:if elif