了解C预处理程序宏的输出

时间:2019-01-27 18:00:52

标签: c macros

以下是我的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

0 个答案:

没有答案