C++中如何更好使用宏定义#define

本文探讨了C++中不提倡使用宏的原因,如安全问题和边际效应,并提出使用const和inline函数作为替代。同时,解释了为何C++仍然保留宏定义,如兼容性和特殊场景的便捷性。文章还介绍了宏定义的进阶用法,如""
摘要由CSDN通过智能技术生成

       首先我们需要明确一点,在c++中不提倡使用宏。我们可以使用const代替,来定义一般的常量。对于一些函数,可以考虑inline关键字,可以达到同样的高效率。

1.为什么c++中不提倡使用宏呢?

       这主要是由于宏背后所潜藏的安全机制以及误用频繁造成的。

       对于宏,我们应明白其实质就是“替换”,编译器在编译阶段就会进行宏替换,使用你所定义的常量(函数)替换所有出现该定义位置,其替换过程说白了,仅仅是字符替换而已,因而会因此发生很多误用,最常见的就是所谓的“边际效应”。

例如:

#define N 100
#define M 200 + N
       当你在程序中使用 M*N 时,原本想要的应该是100 * (200+ N ),而实际上,编译器却给你变成了 100 * 200 + N,这就是所谓的边际效应,说白了,就是替换出现了错误。(我在后面会讲述这一问题的注意事项)

       形成良好地编写习惯是一个优秀程序员的基本素质。记住一句话:编程是一门艺术,态度决定高度,细节决定成败!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值