宏在C++中的替代解决方案
来源:互联网 发布:linux 登录日志查询 编辑:程序博客网 时间:2024/06/08 00:02
宏在C++中的替代解决方案
1. 常量定义
例如:
#define NUM 100
替换为
const int NUM = 100;
const常量放在头文件中,也不必担心存在多个实例的问题,对于const修饰的变量,编译器一般也会对其进行优化,不会出现多重定义的问题。
C语言中还有一个特殊的常量定义:NULL。其一般的定义为 #define NULL 0,指针的内容却是一个整型,这不符合常理。所以在C++11中使用nullptr代替了NULL。
2. 函数定义
宏只是在代码中做字符串替代展开,所以,用宏定义的函数,实际上并没有减少代码的体积。
#define square(x) (x*x)
替换为
inline int square(int value){ return value*value;}
或者
template <class T>inline T square(T& value) { T square(T& value);}
3. 类型重定义
#define unit_32 unsigned int
替换为
typedef unsigned int unit_32;
0 0
- 宏在C++中的替代解决方案
- 宏在C++中的替代解决方案
- 宏在C++中的替代解决方案
- UITextAlignmentCenter在6.0中的替代
- cellspacing属性在css中的替代方法
- 在iOS5中的UDID替代方案
- mstsc /admin 在linux中的替代命令
- Mysql替代解决方案Cassandra
- 谈谈个人在软件中的不可替代性
- Select.add()在IE中的异常以及替代方法
- java中DataOutputStream.writeUTF(String)在c#中的替代
- gluPerspective and gluLookAt 在OpenGL-ES中的替代
- Java中DataOutputStream.writeUTF(String)在c#中的替代
- JasperReport在Weblogic中的解决方案
- PHP中的替代语法
- Java替代C语言
- 替代链接 extern “C”
- 关于##在C宏定义中的作用
- android学习5#--自定义View之坐标系统
- 浮点数的二进制存储方式及转换
- Codeforces Round #354 (Div 2)
- java生成UUID通用唯一识别码 (Universally Unique Identifier)
- map集合最经典的编程例子(包含重写equals和hashcode,toSting)
- 宏在C++中的替代解决方案
- RQNoj 合并果子 优先队列最小堆
- 第12课第3节 字符设备驱动程序之查询方式的按键驱动程序
- Base8编码:通过数字传输二进制数据
- Restful 操作
- ZF_20160614_计蒜客
- SSH Access Denied
- ARM的流水线与PC值的关系
- 第十六周项目2—阅读程序(3)