在c中找不到这个预处理器任务中的所有错误

问题描述 投票:0回答:0
#define INC(x) x+1
#define SQR(x) ((x)*(x))
#define CUBE(x) (SQR(x)*(x))
#define M1(x, y) x##y
#define M2(x, y) #x #y #x
#define M = 10
#define REDUCE (x, y) x - y
int main() 
{
int a[M], i, j = 0, m;
#ifdef M
i = j;
#else
j = i;
#endif
i = 10* INC(j); 
i = REDUCE (j, k);
i = SQR(SQR(j++));
i = CUBE(j);
i = M1(j+ k); 
puts(M2(i, j));
#undef INC
i = INC(j);
#define INC
i = INCE(j); 
return 0;
}

我从不使用宏,所以我很难在这里发现所有错误。我发现了一些像 M =10 -> M 10 或像 main 中缺少的 int k。但是,我不确定 i=M1(j+k) -> i=M1(j,k) 但我认为这仍然是一个错误,所以我不知道该怎么做。最后,i=INCE(j) 也许应该是 i=INC(j)?

c c-preprocessor preprocessor
© www.soinside.com 2019 - 2024. All rights reserved.