Can #if pre-processor directives be nested in C++?

前端 未结 3 1304
孤街浪徒
孤街浪徒 2020-12-04 23:01

I have a question about Pre-processor directives in c++:

For example:

#ifndef QUESTION

//some code here

#ifndef QUESTION

//some code here

#endif
         


        
相关标签:
3条回答
  • 2020-12-04 23:29

    Yes, you can nest #if/#endif blocks. Some C coding styles would tell you to write

    #ifdef CONDITION1
    # ifdef CONDITION2
    # endif
    #endif
    

    using spaces to denote the level of nesting.

    0 讨论(0)
  • 2020-12-04 23:36

    In your code, the #ifndef QUESTION section will be discarded unless you #undef QUESTION.

    Good luck!

    0 讨论(0)
  • 2020-12-04 23:41

    Yes, we can. The #endif statement matches to the previous #if #ifdef or #ifndef etc for which there hasn't been a corresponding #endif.

    e.g.

    #if  ----------|
    #if  -----|    |
    #endif ---|    |
    #endif --------|
    
    0 讨论(0)
提交回复
热议问题