I have a question about preprocessor directives in C++:
For example:
#ifndef QUESTION
// Some code here
#ifndef QUESTION
// Some code here
#endif
#endif
Can we use it in this way, and can the C++ compiler match the ifndef and endif in the right way?
Yes, we can. The #endif statement matches the previous #if, #ifdef, #ifndef, etc. for which there hasn't been a corresponding #endif.
For example,
#if ----------|
#if -----| |
#endif ---| |
#endif --------|