注册 登录
编程论坛 C++教室

关于宏函数的问题:运行的结果是125,125,1728,82;82是怎么来的

dsj 发布于 2011-04-03 21:13, 292 次点击
#include<iostream>
using namespace std;
#define CUBE(a) ((a)*(a)*(a))
#define THREE(a) a*a*a
int main()
{
 long x=5;
 long y=CUBE(x);
 long z=THREE(x);
 cout<<"y:"<<y<<endl;
 cout<<"z:"<<z<<endl;
 long a=5,b=7;
 y=CUBE(a+b);
 z=THREE(a+b);
 cout<<"y:"<<y<<endl;
 cout<<"z:"<<z<<endl;
 return 0;
}
1 回复
#2
yuccn2011-04-03 21:18
y=CUBE(a+b) = CUBE(5+7) = ((5 + 7) *(5  + 7) *(5  + 7)) = 12 * 12 * 12 = 1728
z=THREE(a+b) = THREE(5 + 7) = 5 + 7 * 5 + 7 * 5 + 7 = 82
1