宏函数
来源:互联网 发布:网页牛牛游戏源码 编辑:程序博客网 时间:2024/06/05 04:42
在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的。若字符串是表达式,我们称之为函数式宏定义(宏函数)。
函数式宏定义的参数没有类型,预处理器只负责做形式上的替换,而不做参数类型检查,所以传参时要格外小心。
宏函数的定义要注意括号,个人的习惯是全括上。
尽管函数式宏定义和普通函数相比有很多缺点,但只要小心使用还是会显著提高代码的执行效率,毕竟省去了分配和释放栈帧、传参、传返回值等一系列工作,因此那些简短并且被频繁调用的函数经常用函数式宏定义来代替实现。
#include <iostream>#include <stdio.h>#include <stdlib.h>#include <string>#include <math.h>#include <vector>#include <sstream>#include <list>#include <algorithm>#include <time.h>#include <stdarg.h>#include <queue>#include <winsock.h>//头文件引用的较多,有一些和本程序无关using namespace std;#define ADD(a, b) ((a) + (b))int main(int argc, char *argv[]){cout << ADD(1 + 1, 1) << endl;system("pause");return 0;}
0 0
- 函数、宏、内联函数
- 宏函数
- 宏函数
- 宏函数
- 宏函数
- 函数宏
- 宏函数
- 宏函数
- 宏函数
- 宏函数
- 宏函数
- 宏、函数和内联函数
- Cognos函数(二) - 宏函数
- 常规函数,内联函数,宏
- 内联函数和宏函数
- 宏函数和自定义函数
- 宏、函数、宏函数,内联函数的区别
- 宏函数、内联函数、普通函数的区别
- iOS保持界面流畅的技巧
- HDFS的一致性分析
- mysql常用的一些命令,查看MySQL服务器配置信息
- Pyqt 浏览器禁止对话框小demo
- HDU-1166- 敌兵布阵(线段树 插点问线)
- 宏函数
- 添加vMotion网络的VMkernel端口组
- ant 入门使用指南
- JAVA Socket 编程
- LeetCode-125.Valid Palindrome
- 浅谈Struts2与Webwork的不同和相同点
- Hadoop和大数据:60款顶级开源工具
- 让EditText不能自动获取焦点
- 八大排序之插入排序