STM32----条件编译命令

 


判断定义,进行条件编译

#ifdef 标示符             //定义了标示符,编译程序段1;否则编译程序段2;
    程序段1
#else
    程序段2
#endif
//------------
#ifdef 标示符             //定义了标示符,编译程序段;否则不编译;
    程序段
#endif
//------------
#ifndef 标示符            //未定义标示符,编译程序段1;否则编译程序段2;
    程序段1
#else
    程序段2
#endif
//------------
#ifndef 标示符            //未定义标示符,编译程序段;否则不编译;
    程序段
#endif

用途


被重复引用

被重复引用是指一个头文件在一个c文件中被include了多次,这是由于include嵌套造成的;

a.h文件#include "c.h";

b.c文件#include "a.h" 和#include "c.h";

造成c.h被重复引用;

#ifndef A_H 
#define A_H                     
……                     
#endif                

第一次未定义A_H,定义A_H,编译代码,结束;

之后,已定义A_H,结束;

从而达到不重复编译的目的。


判断值,进行条件编译

#if (常量表达式)              //常量表达式非零,编译程序段1;否则编译程序段2;
    程序段1                   //常量表达式可以不加括号;
#else
    程序段2
#endif
//----------
#if (常量表达式)              //常量表达式非零,编译程序段;否则不编译;
    程序段
#endif

#define

#define 标示符 字符串

字符串可以是常数、表达式、格式串;

#define SYSCLK_FREQ_72MHz    72000000                                           //标示符SYSCLK_FREQ_72MHz的值为72000000;


 

猜你喜欢

转载自blog.csdn.net/lengtian90/article/details/81839007