[C++再学习系列] 避免使用宏
2009-07-11 17:02
190 查看
避免使用宏
宏是一种文本替换设施
,宏替换发生在编译器的预处理阶段,此时
C++
的语法和语义规则并未去作用,无法对宏的进行任何检查,这将为后续生成代码的编译埋下隐患。此外。宏语法仅能理解小括号和方括号
,并不识别
template
的方括号
<>
。举例:
MACRO( Foo<int,
double> )
虽然
Foo<int, double>
是一个
C++
实体,但是上面的宏将解读为传入
Foo<int
和
double>
两个参数。
C++
中用于取代宏的语法:
常数
----
使用
const
和
enum
;
函数展开
---inline
内联函数
名称冲突
----namespace
通用函数
----template
宏是一种文本替换设施
,宏替换发生在编译器的预处理阶段,此时
C++
的语法和语义规则并未去作用,无法对宏的进行任何检查,这将为后续生成代码的编译埋下隐患。此外。宏语法仅能理解小括号和方括号
,并不识别
template
的方括号
<>
。举例:
MACRO( Foo<int,
double> )
虽然
Foo<int, double>
是一个
C++
实体,但是上面的宏将解读为传入
Foo<int
和
double>
两个参数。
C++
中用于取代宏的语法:
常数
----
使用
const
和
enum
;
函数展开
---inline
内联函数
名称冲突
----namespace
通用函数
----template
相关文章推荐
- C++再学习系列:使用合理的引用参数实现接口的自说明
- C++再学习系列:使用合理的引用参数实现接口的自说明
- C++学习系列(四)——String使用
- C++基础学习系列--1、1的简陋版本--输入输出流与字符串变量的使用
- 改善C++ 程序的150个建议学习之建议20:使用memcpy()系列函数时要足够小心
- 树莓派学习系列——使用C++来获取usb设备ID,效果同lsusb
- 改善C++ 程序的150个建议学习之建议20:使用memcpy()系列函数时要足够小心
- 【C++】学习小笔记系列-4-何时使用引用参数
- 实战c++中的智能指针unique_ptr系列-- 使用unique_ptr来避免if多层嵌套
- 实战c++中的智能指针unique_ptr系列-- 使用unique_ptr来避免if多层嵌套
- c++ 11 多线线程系列--------使用锁和条件变量的线程安全队列
- 学习笔记之C/C++指针使用常见的坑
- [C/C++] C/C++延伸学习系列之STL及Boost库概述
- C++学习笔记七之使用数组区间的函数
- Lua学习之3 :tolua++导出C++变量给Lua使用
- C++之父元旦专访(8+13个问题,关于C++的学习&使用和未来)
- matlab2c使用c++实现matlab函数系列教程-normpdf函数
- Silverlight实用窍门系列:22.Silverlight使用WebService调用C++,Delphi编写的DLL文件【实例源码下载】
- Gradle学习系列之六——使用Java Plugin
- WebLogic Portal学习系列之一:让WebLogic Portal使用Oracle数据库