C/C++编程笔记:浅析 C 语言中宏定义的使用,知识点全解( 五 )
{int a;
a=N*N;
Printf( % d , a);
本题中宏名N代表的是表达式2+1 , 使用时容易产生的错误是先把N计算出来2+1=3 , 然后再带入求a的值 , a=3*3 , 结果为9 。 但实际上宏展开只是简单的代替 , 不进行计算 , 本题应该这样计算a=2+1*2+1 , 得到结果为5 。
2.带参宏的定义实例
例题3:源程序:
#define f(x)(x*x)
main()
{inti1 , i2;
i1=f(8)/f(4);
i2=f(4+4)/f(2+2);
Printf(%d , %d , i1 , i2);
本题的输出结果是4 , 3 。 i1 , i2看上去参数一样为什么结果不同呢 , 实际上二者的调用、展开形式不同 , 其中i1=(8*8)/(4*4)=64/16=4 , i2=(4+4*4+4)/(2+2*2+2)=24/8=3;和例题2一样宏展开只是简单的代替 , 不先进行计算 。
推荐阅读
- 游戏笔记本|Dota2-今天又是玛西被削的一天?水友:强度太高,还得接着削!
- 森林之子|双十一性价比风暴来袭,这些性能强劲的笔记本不容错过
- 黑神话|解析《黑神话:悟空》技术看点,RTX 30系笔记本带来极致体验
- 笔记本|红米G笔记本香爆?5000元大作全安排!玩家:这就整超激斗梦境
- 梦幻西游|梦幻西游:找到了当年记录账号的笔记,因为它还被父母混合双打过
- 单机|老旧笔记本轻松畅玩,10款超低配置的经典单机
- 元气骑士|经费炸裂!《元气骑士》新角色比死亡笔记更强,比司铎团更加惊艳
- 地下城与勇士|DNF:韩服6.21开发者笔记,刃影太刀物理固伤,神话合成系统出现
- 国服|第五人格:联动“死亡笔记”?一颗红苹果的期待却与国服彻底绝缘
- Java|Java 地位不保,落后已成定局 ?| 10月编程语言排行