小编pri*_*lik的帖子

使用宏的表达式中的意外输出

我的代码:

#include <stdio.h>
#define PRODUCT(x) (x * x)

int main()
{
    int i = 3, j, k, l;
    j = PRODUCT(i + 1);
    k = PRODUCT(i++);
    l = PRODUCT(++i);
    printf("%d %d %d %d", i, j, k, l);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我无法理解为什么输出是:

7 7 12 49. 
Run Code Online (Sandbox Code Playgroud)

宏中是否有任何错误或其他问题?

c macros preprocessor output

1
推荐指数
2
解决办法
66
查看次数

标签 统计

c ×1

macros ×1

output ×1

preprocessor ×1