以下是我的C程序的代码段:
a = 5; b = 7;
printf("\ncubef(--a) = %d", cubef(--a));
a = 5; b = 7;
printf("\ncubem(--a) = %d", cubem(--a));
其中cubef和cubem的定义如下:
#define cubem(a) a*a*a
int cubef(int a) { return a * a * a; }
执行后,得到以下输出:
cubef(--a) = 64
cubem(--a) = 18
我知道多维数据集会“扩展”到--a*--a*--a
,这将导致4*3*2
等于24,但是由于某种原因我得到了18。有人可以帮助我了解我如何获得该输出吗?
如果需要,这里是完整程序的链接:https://pastebin.com/7hGYJkTi