//宏不区分代码的数据类型,语法结构,只是单纯的替换
//inline函数,C++关键字,告诉编译器,在编译时展开,提高运行效率。
#define SWAP(a,b) /
{ int tmp = (a); /
(a) = (b); /
(b) = tmp; }
#define MUl(a,b,c) /
{ c = (a)*(b); }
void Test()
{
int a, b;
a = 1;
b = 2;
int c = 0;
MUl(a+b,a-b,c );
printf("c = %d",c);
printf("(a,b) = (%d, %d)",a,b);
cout<<endl;
SWAP(a, b);
printf("(a,b) = (%d, %d)",a,b);
cout<<endl;
int *pA, *pB;
pA = &a;
pB = &b;
Swap(pA, pB);
printf("(a,b) = (%d, %d)",*pA,*pB);
}
inline void Swap(int & a, int & b)
{
int tmp;
tmp = a;
a = b;
b = tmp;
}
inline void Swap(int *pA, int *pB)
{
int tmp;
tmp = *pA;
*pA = *pB;
*pB = tmp;
}