#include<stdio.h>
#include<conio.h>
#define CUBE(y)y*(y*y)
 main()
      {
        int j;
        j = CUBE(-2+4);
        printf("value of j = %d",j);
        getch();
      }

此代码的输出是-26。我只想知道此代码如何将-26作为输出。 #define如何在此代码中工作。我知道#define是变量或方法的永久性固定值,但是在这里不知道CUBE是如何工作的。有人可以用简单的方法一步一步地描述一下。

最佳答案

它确实:

j = -2 + 4 * (-2 + 4 * -2 + 4)

CUBE的更正确定义是
#define CUBE(y) ((y)*(y)*(y))

关于c - #define如何工作?多维数据集(y)y *(y * y)的奇怪结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21973747/

10-15 00:16