小编use*_*612的帖子

具有不同结果的宏论证

所以我在C程序中使用宏调用时遇到了这个相当'不屈不挠'的问题.我使用的宏是:

#define MACRO(X) X*X
Run Code Online (Sandbox Code Playgroud)

问题出在我这样做的时候

printf("%d",MACRO(3));
Run Code Online (Sandbox Code Playgroud)

结果显示9(这是正确的).只有当我将3传递为2 + 1时如下:

printf("%d",MACRO(2+1));
Run Code Online (Sandbox Code Playgroud)

它奇怪地显示了5的结果.任何人都可以告诉我为什么?

c macros

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

标签 统计

c ×1

macros ×1