首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于#if的一个小疑点

2012-12-30 
关于#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下的分支了。
[解决办法]
引用:
#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;
}

热点排行