关于视频后部分举得一个例子。

来源:2-3 Linux C预处理之宏函数

何忘初

2016-07-09 13:12

难道就没人看出来老师举的例子有问题?用普通函数计算10.0+10.5的时候老师用的int,结果能不错吗?用宏计算10.5+20.0的时候,老师用的是float,这样算出来当然不可能错。

写回答 关注

4回答

  • z3phyr
    2016-10-26 05:02:58

    例子并没有问题,就算你把变量c前面的类型改成浮点型,算出来的结果也还是错误的,因为参数在被传递给add函数的时候就已经经过一次强制类型转换了,老师举这个例子只是表达在宏函数中不对数据类型有强制要求。

  • 慕粉3682142
    2016-08-13 12:48:00

    我也觉得最后一个例子看不懂,应该把float改成int才能说明问题

  • 霏梧
    2016-08-08 13:17:59

    普通函数计算:add(10.5+5)=15.000000

    宏计算:ADD(a10.5+5)=15.500000


  • 何忘初
    2016-07-09 13:13:21

    这怎么能拿出来做对比来说明宏的优势

Linux C语言结构体

C语言的深入,帮助小伙伴们进一步的理解C语言,赶紧看过来

118471 学习 · 166 问题

查看课程

相似问题