C/C++高级特性之——预处理器中的宏(Macro)#define 详解

本文详细介绍了C++中的宏定义,包括定义常量、多重包含防范和创建宏函数。讨论了宏的优缺点以及替代方案,如使用const代替#define定义常量,使用条件编译防止头文件重复包含,以及模板作为宏函数的替代。同时提到了宏的字符串化和字符串拼接特性,并强调了宏的类型不安全性与调试困难等问题。
摘要由CSDN通过智能技术生成

宏(英语:Macro)是一种批量处理的称谓。
计算机科学里的宏是一种抽象(Abstraction),它根据一系列预定义的规则替换一定的文本模式。解释器或编译器在遇到宏时会自动进行这一模式替换。对于编译语言,宏展开在编译时发生,进行宏展开的工具常被称为宏展开器。
宏这一术语也常常被用于许多类似的环境中,它们是源自宏展开的概念,这包括键盘宏和宏语言。绝大多数情况下,“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。
——摘自:百度百科

得,估计这段东西也没人要看,那我们就进入正题吧。



本文为EricNTH的原创博客,转载请注明出处!


宏的定义

在最顶上,不看也罢。

C++中宏的用途

1.定义常量

语法
#define CONSTANT_NAME CONSTANT_VALUE

举个例子:

#define PI 3.1415926
替代方案
const double PI = 3.1415926

两种方法的利弊:
使用宏#define:使用方便快捷,且有许多方法。但是不是类型安全的。
使用const:语法比较长,但是类型安全。
可以自行挑选。

补充内容

你可以使用 #ifdef (#if defined) 或 #ifndef (#if not defined) 来检查常量是否有被定义。
你可以使用#undef来解除对一个常量的定义。
例如:

#ifdef PI
//do sth.
#endif

#ifndef PI
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值