很多人使用宏定义后,发现程序的输出和自己原本设想不一致,这很可能是因为计算优先级导致的。
对于下面的宏定义,请问输出是什么?
#include <iostream>
using namespace std;
#define X 5
#define Y X+1
#define Z Y*X/2
int main()
{
int a = Y*X/2;
cout<<X<<”\t”<<Y<<”\t”<<Z<<”\t”<<a<<endl;
return 0;
}
本文详细解读了一个使用宏定义时遇到输出不一致的问题,着重解释了计算优先级对程序行为的影响,并通过示例展示了如何正确理解和应用宏定义。
很多人使用宏定义后,发现程序的输出和自己原本设想不一致,这很可能是因为计算优先级导致的。
对于下面的宏定义,请问输出是什么?
#include <iostream>
using namespace std;
#define X 5
#define Y X+1
#define Z Y*X/2
int main()
{
int a = Y*X/2;
cout<<X<<”\t”<<Y<<”\t”<<Z<<”\t”<<a<<endl;
return 0;
}
3463

被折叠的 条评论
为什么被折叠?