社区
C语言
帖子详情
宏转化函数 是否降低函数性能?
xtyjason
2009-04-27 12:44:00
宏转化函数 性能是会降低吗?
...全文
117
10
打赏
收藏
宏转化函数 是否降低函数性能?
宏转化函数 性能是会降低吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
猫已经找不回了
2009-04-27
打赏
举报
回复
会的。
theone11
2009-04-27
打赏
举报
回复
同一个功能,用宏来实现的时间效率肯定比用函数来实现好得多,毕竟宏是直接展开代码,而调用函数的成本就高得多了.
liliangbao
2009-04-27
打赏
举报
回复
[Quote=引用 4 楼 zjl_1026_2001 的回复:]
宏是在预编译过程中做了一个代码的替换,而函数则是在运行过程中做入栈、保存数据、出栈之类的工作,会有额外的系统开销的。
所以自然是宏的效率高。
但是,因为宏是在预编译过程中的代码替换,如果你的宏定义的代码特别大,而且用到宏的地方又很多,就会使生成的执行文件很大,
两者如何取舍关键看实际情况了
[/Quote]
Up,但是一般是会的,因为宏的代码都不是很长~
jiyan1221
2009-04-27
打赏
举报
回复
個人認為,宏比較適合于短小的函數。適當的運用宏對程序效率的提高肯定是有幫助的。但是反過來降低效率也不是不可能。
pathuang68
2009-04-27
打赏
举报
回复
1. 将宏改写成inline函数,两者性能差不多。
2. 宏会有很多隐含的问题,尽量少使用,比如:
#define MAX(a, b) ((a > b) ? (a) : (b))
如果 a = 5; b = 0;
那么使用万MAX(a++, b)后,a=7。
Scott Meyers有一本书叫Effective C++,第一条就是告诫大家尽量少用宏。:)
fox000002
2009-04-27
打赏
举报
回复
看具体情况吧
如果代码完全一样,函数会多出栈入栈的操作,效率会降低
改成 inline 的话,可能和宏差不多
chenaiyuxue
2009-04-27
打赏
举报
回复
宏是牺牲空间效率来换取时间效率的
zhanghuayi_xiyou
2009-04-27
打赏
举报
回复
宏只是在预编译的时候进行代码替换,增加的是代码量。而函数则是在运行的时候使用系统资源。
对于比较短小的功能函数,使用宏可以提高程序的运行效率。
沙漠里的海豚
2009-04-27
打赏
举报
回复
宏是在预编译过程中做了一个代码的替换,而函数则是在运行过程中做入栈、保存数据、出栈之类的工作,会有额外的系统开销的。
所以自然是宏的效率高。
但是,因为宏是在预编译过程中的代码替换,如果你的宏定义的代码特别大,而且用到宏的地方又很多,就会使生成的执行文件很大,
两者如何取舍关键看实际情况了
fly_new
2009-04-27
打赏
举报
回复
宏在绝对多数情况的效率比函数高,但是我敢肯定的说这个不肯定!!不信的朋友,晚上回来举例。
Excel
函数
100问
初学Excel
函数
你
是否
总有一种无力感?工作中遇到问题时,不知道用什么
函数
来解决?
函数
的单词都认识,但一用它来写公式,要么写不出来,要么结果不对,更别说编写嵌套公式那些
函数
名称、
函数
参数的作用总是记不住,公式总是编制不对;用Excel多年,还是只会常用的那三五个
函数
。本次课程结合职场工作中遇到的问题,整理100问用
函数
来帮助大家学习Excel
函数
的这些痛点。熟练掌握Excel
函数
的他,总是几分钟就能完成,别人倒腾1天的工作量。
C语言
宏
定义、
宏
函数
、内置
宏
与常用
宏
前言: 在C语言中,变量类型、循环控制、基础语法等与其他高级语言基本无异;而C语言(C++)特有的两把双刃剑指针和
宏
定义/
宏
函数
使得C语言在底层开发中披荆斩棘、无所不能。这两个概念涉及范围比较广,其分支点也比较多,可谓星罗棋布,但这每颗星都足以照亮C语言因其开发周期、可维护性、可移植性等问题而显的黯淡的天空,使得这门语言灵活多变、操作犀利,令人难以揣摩却也深深着迷。 首先,C的第一把双刃剑:指针,...
函数
调用的代价与优化
译者注:本文原始链接为https://johnysswlab.com/make-your-programs-run-faster-avoid-function-calls/,翻译获得作者同意。 这是程序底层优化的第二篇文章,第一篇文章缓存友好程序设计指南。 现代软件设计像层(layer),抽象(abstractions)和接口(interfaces)。 这些概念被引入到编程中的初衷是好的,因为它们允许开发者编写更容易理解和维护的软件。 在编译器的世界里,所有这些结构都
转化
为对
函数
的调用:许多小
函数
相互调.
从caffe中学习
宏
定义,
宏
函数
最近看caffe代码, caffe.cpp 中作者用了一个比较好的
宏
定义
函数
,感觉特别好。 特意总结一下
宏
的使用
宏
替换是C/C++系列语言的技术特色,C/C++语言提供了强大的
宏
替换功能,源代码在进入编译器之前,要先经过一个称为“预处理器”的模块,这个模块将
宏
根据编译参数和实际编码进行展开,展开后的代码才正式进入编译器,进行词法分析、语法分析等等。 我们常用的
宏
定义及相关用法
宏
定义及相关用法 欢迎各位补充 目录 一些成熟软件中常用的
宏
定义: 使用一些内置
宏
跟踪调试:
宏
定义防止使用时错误:
宏
与
函数
带副作用的
宏
参数 特殊符号:’#’、’##’ 1、一般用法 2、当
宏
参数是另一个
宏
的时候 __VA_ARGS__与##__VA_ARGS__ 一些成熟软件中常用的
宏
定义: 1,防止一个头文件被重复包含 #ifndef COMDEF_H #define CO...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章