在C++中尽量少用宏
2004-07-28 22:09
288 查看
宏在C中有非常重要的地位,但是,在C++中,Bjarne Stroustrup建议非到万不得已,不要使用宏,因为C++提供了其他多种方法来取代宏。
没有必要的宏:
#define PI 3.1416
对常量定义,尝试用const取代,编译器会对const进行类型检查。
非常危险的宏:
#define SQR(x) x*x
如果写了一个SQR(2+x),它会被扩展成2+x*2+x,结果并非你想象的(2+x)*(2+x),不要对函数使用宏,即使要提高效率,也可以使用template inline函数。
——《The C++ Programming Language》
没有必要的宏:
#define PI 3.1416
对常量定义,尝试用const取代,编译器会对const进行类型检查。
非常危险的宏:
#define SQR(x) x*x
如果写了一个SQR(2+x),它会被扩展成2+x*2+x,结果并非你想象的(2+x)*(2+x),不要对函数使用宏,即使要提高效率,也可以使用template inline函数。
——《The C++ Programming Language》
相关文章推荐
- c++ 尽量不要使用#define 而是用const、enum、inline替换。
- 《Effective Modern C++》读书笔记(4) -- 尽量使用auto来显式类型声明
- 《Effective Modern C++》读书笔记(5) -- 尽量使用nullptr而不使用0和NULL
- [C++]尽量用非成员函数,非友元函数替换成员函数
- effective c++ 条款2 尽量以const enum inline代替#define
- C++编程习惯:尽量少做转型动作
- C++之尽量不要重载&&,||或者,运算符(7)---《More Effective C++》
- Effective Modern C++ 条款5 尽量用auto代替显式类型声明
- 从C转向C++ ( 尽量用const和inline而不用#define )
- 条款1---C++尽量用const,inline,enum等代替#define
- 【C++问题总结】尽量减少使用宏,因为即使加了括号也可能会出问题
- C++ 笔记(一) —— 尽量以 const、enum、inline 替换 #define
- C++ 转型动作 尽量避免 以及 那些意想不到的威胁
- 在c++中尽量使用const,enmu,inline来代替#define
- 在C和C++里,要尽量避免使用 system("pause")
- Effective C++ 条款2:尽量用iostream而不用stdio.h
- C++尽量不要使用#define
- 【让你的C++程序更加高效】条款01:尽量使用常量/内联而不是预处理器/宏定义
- [effectiv c++]条款2:尽量以const,enum,inline替换#define(static,const定义式)
- More Effective C++ ——02_尽量使用C++风格的类型转换