这是一个正常的C例行程序,我在一些问题库中找到了.如下所示:
#define CUBE(p) p*p*p
main()
{
int k;
k = 27 / CUBE(3);
printf("%d", k);
}
Run Code Online (Sandbox Code Playgroud)
根据我的理解和知识,K的值应该是1,因为在预处理期间CUBE(3)将被3*3*3替换,并且在随后的编译之后它将给出值1,但是它已经显示了值81这让我很想知道它是怎么发生的.
任何人都可以证明上面这个问题的答案是正确的.