房天下 > 房天下问答 > 业主生活 > 其他
  • 关于c++中if条件编译的一个问题

    这个和预期结果一样#include<iostream.h>#define A 5void main(){ #if A>0 cout<<"A>0"<<endl; #elif A<0 cout<<"A<0"<<endl; #else cout<<"A=0"<<endl; #endif}为什么这个就不一样了啊#include<iostream.h>void main(){ int A=5; #if A>0 cout<<"A>0"<<endl; #elif A<0 cout<<"A<0"<<endl; #else cout<<"A=0"<<endl; #endif}

    提问者:golb

    发布于2011-01-17

共1个回答
  • yanhai15 丨Lv 2
    #后的都是预编译指令,预编译,就是在编译前作一次字符串的替换。预编译指令要跟代码区分开来,因为他们是在编译前就处理好了的。lz可以这么理解:int A这样的代码只有在词法分析后才确定A是一个标识符;#define A 5会在编译前将代码中独立出现的A直接用5来替换,并把不满足条件的分支当成注释,只有满足的那一个分支下的代码有效
    +1 2011-01-18 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。