预处理器之条件编译

一. 认识预编译指令

条件编译相关的预编译指令有如下几个:

#define 定义一个预处理宏

#undef 取消宏的定义

#if 编译预处理中的条件指令,类似于if

#ifdef 判断某个宏是否已经被定义,若被定义,执行之后的语句(是if not defined的缩写)

#ifndef 和ifdef相反,若某个宏为被定义,执行之后的语句(是if defined的缩写)

#elif 若#if, #ifdef, #ifndef或前面的#elif条件不满足,则执行#elif之后的语句,类似于else-if,是(else if的缩写)

#else 若与#if, #ifdef, #ifndef对应, 若这些条件不满足,则执行#else之后的语句,类似于else

#endif #if, #ifdef, #ifndef这些条件命令的结束标志

defined 与#if, #elif配合使用,判断某个宏是否被定义

defined使用举例

#if defined(MAX) && !defined(MIN)

二. 常用的条件编译方法

最常见的条件编译使用ifdef和ifndef,用于防止重复包含头文件的宏

#ifndef _AB_CD_H
#defind _AB_CD_H

//declaration codes

#endif //_AB_CD_H

从理论上讲可以出现在任何地方(头文件和实现文件),通常为了防止头文件被多次包含,在头文件中使用是必须的。

头文件的标识(即上面的_AB_CD_H)在理论上来说可以是自由命名的,但每个头文件的这个“标识”都应该是唯一的。标识的命名规则一般是头文件名全大写,并把文件名中的“.”也变成下划线(也有前后还要加上下划线的写法),如:stdio.h变为STDIO_H

posted @   卷卷人  阅读(102)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示