下面程序的运行结果是怎么求出来81的,没学h



```c
#define S(x) 4*x*x+1
int main()
{
    int m = 6,n=8;
    printf("%d",S(m+n));
    return 0;

}

```

调用宏函数的时候,参数不会先进行运算,也就是说,传进去的x不是6+8=14,而是直接传进去6+8,把宏函数里面的x直接换成6+8

就得到了:4*m+n*m+n+1  即:
4*6+8*6+9*1=81

img

宏替换:S(m+n) ==> 4*m+n*m+n+1 = 4*6+8*6+8+1 = 24 + 48 + 8 + 1 = 81

这里运用到了C语言的宏定义#define S(x) 4xx+1
计算时把m+n带入 4xx+1 得到81,宏的概念如下:
#define 叫做宏定义命令,它也是C语言预处理命令的一种。所谓宏定义,就是用一个标识符来表示一个字符串,如果在后面的代码中出现了该标识符,那么就全部替换成指定的字符串。

img