#include<stdio.h>
#define x 4+1
int main()
{
int i;
i = x*x*x;
printf("%d",i);
return 0;
}
我想知道如何评估表达式。
答案 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