请大家帮我看看这个宏怎么会出现这种情况?
Woody 2004-12-21 03:24:15 #include <iostream>
using namespace std;
#define cube_macro(a) ((a)*(a)*(a))
inline float cube_inline(float a){return (a)*(a)*(a);}
float cube(float a){ return a*a*a;}
void main(){
int i = 2;
cout<<"cube_macro() = " <<cube_macro(++i)<<endl;
int j = 2;
cout<<"cube_inline() = "<<cube_inline(++j)<<endl;
int m = 2;
cout<<"cube() = "<<cube(++m)<<endl;
}
结果:
cube_macro() = 80
cube_inline() = 27
cube() = 27
为什么cube_macro(++i)的结果会是80呢?