#define宏定义
2016-07-05 22:58
260 查看
预处理指令:
以#开头的行,都预处理指令,用于指示编译器做一些预处理工作。比如#include “XXX.h”
注:预处理指令不是语句,行尾不要加分号
#define的两种用法
1. 定义一个”数值”
2. 定义一个”算式”
注:工程中应该避免使用这两种方式
定义一个值
定义带参数的“算式”
易错点
在程序中应该尽量少用这两种#define
取代的办法:
1. 定义变量或const常量
const double PI=3.14;
2. 定义inline函数(第八章)
以#开头的行,都预处理指令,用于指示编译器做一些预处理工作。比如#include “XXX.h”
注:预处理指令不是语句,行尾不要加分号
#define的两种用法
1. 定义一个”数值”
2. 定义一个”算式”
注:工程中应该避免使用这两种方式
定义一个值
#define PI 3.14 int main() { double r=1.2; double area=PI * r * r; return 0; }
定义带参数的“算式”
#define MAX(a,b) a>b?a:b int main() { int a=MAX(10,12); return 0; }
易错点
#define MUL 1+2 int main() { int a=4*MUL; return 0; //准确答案6 }
在程序中应该尽量少用这两种#define
取代的办法:
1. 定义变量或const常量
const double PI=3.14;
2. 定义inline函数(第八章)
inline int max(int a,int b) { return a>b?a:b; }
相关文章推荐
- 语法
- 2016/07/05 zend optimizer
- kvm虚似机监控
- Codeforces Round #359 (Div. 2) C DFS
- PHP开发中最常见的10个错误
- 优化MySQL中的分页
- HotSpot虚拟机发起内存回收
- LA-4064(极角排序)
- bit、byte、位、字节、字符串等概念
- 上传伪技术~很多人都以为判断了后缀,判断了ContentType,判断了头文件就真的安全了。是吗?
- Python MySQL操作
- 看完后,搞懂ARP的工作原理,其实并不难!
- Spring Data JPA学习
- 学习JAVA回调方法(一)
- JavaScript 遍历DOM
- JavaScript 遍历DOM
- Spark RDD中cache和persist的区别
- 软工课设第二周第二天 7.5
- c traps and pitfalls reading note(1)
- android 数据存储操作之SQLite