关于宏函数的一个问题
#include "stdafx.h"
#include <iostream>
using namespace std;
#define ADD(r) ((r)+(r)+(r))
int _tmain(int argc, _TCHAR* argv[])
{
int c=0;
cout<<"ADD(c): "<<ADD(c)<<endl;
cout<<"ADD(++c): "<<ADD(++c)<<endl;
return 0;
}
为什么ADD(++c) 输出的是 9 ?我们系有个特牛的同学说是堆栈顺序的问题。
什么是堆栈顺序?关于这方面的有没有什么著名的文章?