C/C++预编译指令和条件编译
2021-02-03 10:14
标签:safe 语句 介绍 bsp 默认 日志 efi fine color 1. 常见的预编译指令和条件编译项有如下这些: #define、#undef、#ifdef、#ifndef、#if、#elif、#else、#endif 2. #define介绍 #define MACRO_NAME[args] [tokens] 定义一个宏,args(参数)和tokens(标记)都是可选的,比如, #define PI 3.14 #define DEBUG 没有标记的宏,默认值是 1, 之后出现的MACRO_NAME将被替代为所定义的标记 宏定义,按照是否带参数通常分为对象宏、函数宏两种。 函数宏:带参数的宏。例如 C/C++预编译指令和条件编译 标签:safe 语句 介绍 bsp 默认 日志 efi fine color 原文地址:https://www.cnblogs.com/yulei0713/p/12803377.html1 #define 定义一个预处理宏
2 #undef 取消宏的定义
3 #if 编译预处理中的条件命令,相当于C语法中的if语句
4 #ifdef 判断某个宏是否被定义,若已定义,执行随后的语句
5 #ifndef 与#ifdef相反,判断某个宏是否未被定义
6 #elif 若#if, #ifdef, #ifndef等条件不满足,则执行
7 #else 与#if, #ifdef, #ifndef对应, 若这些条件不满足,则执行
8 #endif #if, #ifdef, #ifndef这些条件命令的结束标志.
9 defined 与#if, #elif配合使用,判断某个宏是否被定义
对象宏: 不带参数的宏被称为"对象宏(objectlike macro)"。对象宏多用于定义常量、通用标识。例如:// 常量定义
#define MAX_LENGTH 100
// 通用标识,日志输出宏
#define SLog printf
// 预编译宏
#define _DEBUG
// 最小值函数
#define MIN(a,b) ((a)>(b)? (a):(b))
// 安全释放内存函数
#define SAFE_DELETE(p) {if(NULL!=p){delete p; p = NULL;}}