读书人

关于#if的一个小疑点

发布时间: 2012-12-30 10:43:15 作者: rapoo

关于#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下的分支了。
[解决办法]
引用:
#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
re……


条件编译不是这么用的,程序还没运行,怎么知道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;
}

读书人网 >C++

热点推荐