黑马程序员技术交流社区

标题: #define M ( a+b ) 什么意思啊? [打印本页]

作者: pprgra56    时间: 2014-3-6 16:45
标题: #define M ( a+b ) 什么意思啊?
本帖最后由 pprgra56 于 2014-3-7 09:56 编辑

前两天做题时候看到的 #define    M    ( a+b )
只知道带入 可是怎么带啊 ?
作者: 陈志辉    时间: 2014-3-6 16:57
#define    M    ( a+b ) ,可以这样解释下面的程序遇到M,就会用(a+b)代替

作者: 黑芝麻    时间: 2014-3-6 17:01
在编写源程序时,所有写M的地方就等于写了(a+b),对源程序作编译时,将先由预处理程序执行宏代换,即用(a+b)表达式去置换所有的宏名M,然后再进行编译。

作者: 兰WX    时间: 2014-3-6 17:10
#define M (a+b)
#include  <stdio.h>
int main()
{
    int a, b,s ;
    printf("input 2 number: \n");
    scanf("%d, %d",&a, &b);
    s=M;//相当于s=(a+b);
    printf("s=%d\n",s);
    return 0;
      
}

作者: z82454642    时间: 2014-3-6 18:15
#define M (a+b)

意思就是 M = a+b,在代码中如果遇到需要使用a+b的地方可以直接写M
作者: Monkey·D·Chas    时间: 2014-3-6 18:46
这个是宏定义  只要 定义了#define    M    ( a+b )  以后的代码中凡是遇到a+b  就用m代替
例如  圆周率是3.1415926~~~~~~无线不循环的  我们定义 #define    PI  3.1415926  所以 以后的代码 凡是需要用圆周率的 就写上PI   就可以了
作者: lixiangzhou    时间: 2014-3-6 23:44
#define 是宏定义,是用来替换内容,简化代码的
不推荐写成
#define M (a + b)
李明杰老师推荐最好写成下面方式,更严谨
#define M ((a) + (b))




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