关于#if的一个小疑点
关于#if的一个小问题#include iostreamusing namespace stdint main(){int a0,b0cout请输入数A和
关于#if的一个小问题
#include "iostream"
using namespace std;
int main()
{
int a=0,b=0;
cout<<"请输入数A和数B:"<<endl;
cin>>a;
cin>>b;
#if a>=b
cout<<a-b<<endl;
#else
cout<<b-a<<endl;
#endif
return 0;
}
为什么我输入 88 和89后输出了-1啊?
[解决办法]#if 是预编译指令,在编译的时候已经确定执行a>=b下的分支了。
[解决办法]条件编译不是这么用的,程序还没运行,怎么知道a,b的值呢?
要用编译时确定的值,如:
#include <iostream>
using namespace std;
#define X 5
#define Y 6
int main()
{
int a=0,b=0;
cout<<"请输入数A和数B:"<<endl;
cin>>a;
cin>>b;
#if (X >= Y)
cout<<a-b<<endl;
#else
cout<<b-a<<endl;
#endif
return 0;
}