#define x 4 + 1 .......打印x的立方体时输出是什么?

时间:2012-11-18 06:36:59

标签: c c-preprocessor

#include<stdio.h>
#define x 4+1
int main()
{
     int i;
     i = x*x*x;
     printf("%d",i);
     return 0;
}

我想知道如何评估表达式。

2 个答案:

答案 0 :(得分:5)

C预处理器将字面上替换x的{​​{1}}的所有实例,从而得到以下代码:

4+1

由于i = 4+1*4+1*4+1; 优先于*,因此评估为:

+

i = 4+4+4+1; 获取值i

答案 1 :(得分:1)

您还可以在定义中使用括号,如下所示:

#define x (4+1)

然后,评估为:

i = (4+1)*(4+1)*(4+1)

i的值为125