#include "stdafx.h"
#include<iostream>
using namespace std;
#define N 3
#define Y(n) ((N+1)*n)
int _tmain(int argc, _TCHAR* argv[])
{
int z=2*(N+Y(5+1));
cout<<z<<endl;
return 0;
}
答案:48
#define只是在预处理阶段简单的进行替换
预处理过后,表达式被处理为:
int z=2*(3+((3+1)*5+1));
故结果为48,而非54