有人可以解释为什么b = 150?C++预处理器中的前缀增量
#define CUBE(X) ((X) * (X) * (X))
using namespace std;
int main(void)
{
int a = 3,b = 0;
cout << "before "<< endl;
cout << "a = " << a;
cout << endl;
cout << "b = " << b;
cout << endl;
cout << "after"<< endl;
b = CUBE(++a);
cout << "a = " << a;
cout << endl;
cout << "b = " << b;
getchar();
return 0;
}
[C,C++预处理器宏]的可能的重复(http://stackoverflow.com/questions/1263607/cc-preprocessor-macro) – 2011-05-30 19:40:56
@BoPersson:相关,但不是重复...不仅仅是因为那个在序列点之间通过递增多次不具有UB特征。 – 2011-05-30 21:14:13