我执行了以下代码
# define swap(a,b) temp=a; a=b; b=temp;
#include<stdio.h>
#include<conio.h>
main( )
{
int i, j, temp;
i=5;
j=10;
temp=0;
if( i > j)
swap( i, j );
printf( "%d %d %d", i, j, temp);
}
Run Code Online (Sandbox Code Playgroud)
它给了我输出 10 0 0
我的问题是为什么#define宏甚至在if(i>j)声明之后才被执行false?