c语言中,宏和函数的区别
2015-11-16 17:05
363 查看
一、代码长度:宏是完全替换,插入到程序里使得代码变长;
函数代码是只出现在一个地方,使用时则去那里调用。
二、执行速度:宏更快一些,因为在预编译阶段都已完成;
函数则慢一点,因为需要调用以及返回(压栈/出栈)额外时间。
三、操作符优先级:宏有时要少加括号而导致计算逻辑出错;
函数最后只将值返回来,结果容易预测。
四、参数求值:宏每次都要计算;
函数只需要计算一次,之后多次调用并不会导致多次求值而出错。
五、参数类型:宏不关心类型,只要参数操作合法就可以;
函数类型要一致,不同类型则需要不同函数。
函数代码是只出现在一个地方,使用时则去那里调用。
二、执行速度:宏更快一些,因为在预编译阶段都已完成;
函数则慢一点,因为需要调用以及返回(压栈/出栈)额外时间。
三、操作符优先级:宏有时要少加括号而导致计算逻辑出错;
函数最后只将值返回来,结果容易预测。
四、参数求值:宏每次都要计算;
函数只需要计算一次,之后多次调用并不会导致多次求值而出错。
五、参数类型:宏不关心类型,只要参数操作合法就可以;
函数类型要一致,不同类型则需要不同函数。
相关文章推荐
- 第16章 C预处理器和C库 16.4 宏,还是函数
- 关于#define
- 浅谈宏与函数的区别
- 将三个数从大到小输出
- VCG Libary学习笔记(1) 概述 安装 文件夹结构
- 第十周项目2 二叉树遍历的递归算法
- C++ 06装饰模式
- 菜鸟浅析JAVA,.NET,C/C++的区别
- C++11::遍历tuple中的元素
- const修饰符(C++11标准)
- 【第9周 项目2 - 对称矩阵压缩存储的实现与应用(2)】
- Floyd算法——C++实现版
- 14.c/c++程序员面试宝典-include的使用
- C++内存管理
- 基于Huffman树的文件压缩原理及C语言实现(一)
- C++11:unique_ptr 自己定义类似make_shared的make_unique模板函数
- 第9周项目3 稀疏矩阵的三元组表示的实现及应用
- C++学习网站
- JAVA加密C++解密简单方法
- 【LeetCode-290】Word Pattern(C++)