#include <stdio.h>
#define Mul(x,y) ++x*++y
using namespace std;
int main()
{
int a=1;
int b=2;
int c=3;
printf("%d\n",Mul(a+b,b+c));
cout<<a+b<<endl<<b+c<<endl;
return 0;
}
宏是字符串替换,把字符串代到宏调用里就清楚了:Mul(a+b,b+c)-->++a+b*++b+c-->2+3*3+3=14