搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 【求助】在什么时候适合用宏 在什么时候适合用函数调用?
标题:
【求助】在什么时候适合用宏 在什么时候适合用函数调用?
只看楼主
houmin0036
等 级:
新手上路
帖 子:39
专家分:0
注 册:2013-1-15
结帖率:
37.5%
楼主
已结贴
√
问题点数:20 回复次数:7
【求助】在什么时候适合用宏 在什么时候适合用函数调用?
RT 我是新手 如果可以请讲的通俗些 谢谢
搜索更多相关主题的帖子:
通俗
2013-01-18 14:55
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
2
楼
得分:4
尽可能地使用函数!
授人以渔,不授人以鱼。
2013-01-18 15:02
神龙赖了
来 自:萨塔星
等 级:
青峰侠
威 望:
2
帖 子:711
专家分:1788
注 册:2012-10-13
第
3
楼
得分:4
事实证明函数比宏更为安全,如:
#define MAX(x,y) x > y ? x : y
如果代入式为:MAX(number1, ++number2);
则宏展开为
number1 > ++number2 ? number1 : ++number2;
很明显,number2的值递增了两次,所以结果可能会产生错误!
I have not failed completely
2013-01-18 15:14
houmin0036
等 级:
新手上路
帖 子:39
专家分:0
注 册:2013-1-15
第
4
楼
得分:0
回复 2楼 TonyDeng
为什么 那么带参宏没有使用的价值吗?
2013-01-18 15:15
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
5
楼
得分:0
带参宏只是文字处理技巧,不是语言自身的东西,尽量少用就是了,以后你自然知道原因。当然你可以不信邪,抱着那些几十年前的古老书本当圣经,我也拦不着。
授人以渔,不授人以鱼。
2013-01-18 15:19
peach5460
来 自:武汉
等 级:
贵宾
威 望:
30
帖 子:2780
专家分:6060
注 册:2008-1-28
第
6
楼
得分:4
宏只在特定场合用一下就行啦...
我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-01-18 15:32
羽VS翼
等 级:
论坛游民
帖 子:26
专家分:43
注 册:2013-1-17
第
7
楼
得分:4
宏只是简单的字符串替换,在预处理时已经替换。不存在检错机制。
所以宏没有函数安全,但是宏可以提高代码效率,就像C++中的inline函数。以后会慢慢接触的,经验多了就知道了
2013-01-18 16:11
zklhp
来 自:china
等 级:
贵宾
威 望:
254
帖 子:11485
专家分:33241
注 册:2007-7-10
第
8
楼
得分:4
现在的编译器在开优化的情况下会自动把教小的函数变成内联的 所以用宏的意义不大了 靠编译器优化就好了
2013-01-19 13:42
8
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-396992-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.136232 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved