黑马程序员技术交流社区

标题: 宏定义输出 [打印本页]

作者: 简约无处不在    时间: 2016-5-13 21:23
标题: 宏定义输出
#define  M(x,y,z) x*z+y+z 输出结果是(   )
main()
{
    int  a=2,b=1, c=4;
    printf("%d\n", M(a+b,b+c, c+a));
}
作者: kedt5200    时间: 2016-5-13 21:39
这样用宏很危险,宏是直接展开的,不会去做类型检查,加上又没有括号保护优先级,这样的代码分分钟是定时炸弹。

宏一般用于:1、定义常量  2、定义频繁操作(相比于函数效率更高)
作者: SuperJJ    时间: 2016-5-14 20:31
一般都是加上括号的吧?




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2