C++工程中常用的宏定义(#define)

本文介绍了在C++工程中,尽管define宏有一些不足,但仍然广泛使用的场景:1) 防止头文件重复包含;2) 定义变量;3) 平台差异化实现;4) 设置日志级别;5) 函数导入导出控制;6) 实现单例模式;7) 禁止拷贝和赋值操作;8) 安全删除指针;9) 定义命名空间。这些用法在实践中提供了便利。
摘要由CSDN通过智能技术生成

尽管说define有很多不足之处,很多时候我们需要使用const来替代define, 也可以使用typedef来替代define。

但是,在一些实际工程中,我们还是不可避免的使用到了define,这给我们带来了极大的方便。

1 定义头文件,防止重复包含
其实不是真正的防止重复包含头文件,而是忽略除了第一次之外的其他包含:
http://blog.csdn.net/wangshubo1989/article/details/48310681

#ifndef WANGSHUBO_BASE_H_
#define WANGSHUBO_BASE_H_
...
#endif // WANGSHUBO_BASE_H_

2 定义变量

#define WANGSHUBO_SELF_MSG WM_USER + 29

static const std::string kDate = "2016-11-25";

3 分平台实现
对于一些快平台开发,完全可以使用define来包含不同的文件,或是实现不同的功能:

#if (MY_PLATFORM == MY_PLATFORM_WIN32)
#include <regex>
#include "sakura/win32/compact/dirent.h"
#endif

#if (MY_PLATFORM == MY_PLATFORM_IOS) || (MY_PLATFORM == MY_P
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一苇渡江694

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值