#include<iostream>
using namespace std;
#define doubled(x) x*2
int main()
{
cout<<"doubled(2)="<<doubled(2)<<endl;
cout<<"doubled(1+2)="<<doubled(1+2)<<endl; //1+2*2
return 0;
}
解决办法:内联函数
#include<iostream>
using namespace std;
inline doubled(int x)
{
return x*2;
}
int main()
{
cout<<"doubled(2)="<<doubled(2)<<endl;
cout<<"doubled(1+2)="<<doubled(1+2)<<endl;
return 0;
}