1#define DEF1 2 31 1 jan 1 OK 4 5#ifdef DEF1 61 2 jan 2 OK 7#endif 8 91 3 jan 3 OK 10 11#ifdef DEF2 121 4 jan 4 NOT OK 13#else 141 5 jan 5 OK 15#endif 16 17#ifndef DEF2 181 6 jan 6 OK 19#else 201 7 jan 7 NOT OK 21#endif 22 23#ifdef DEF1 24#ifndef DEF2 251 8 jan 8 OK 26#endif 27#endif 28 29#ifdef DEF1 30#ifdef DEF2 311 9 jan 9 NOT OK 32#else 331 10 jan 10 OK 34#endif 35#else 361 11 jan 11 NOT OK 37#endif 38 39#define DEF2 40 41#ifndef DEF1 // skip = 1 42#ifndef DEF2 // skip = 2 431 12 jan 12 NOT OK 44#else // skip = 1 unskip = 0 451 13 jan 13 NOT OK 46#endif // skip = 0 unskip = 0 47#else // skip = 0 unskip = 1 481 14 jan 14 OK 49#endif // skip = 0 unskip = 0 50 51#undef DEF1 52 53#ifdef DEF1 // OFF 54#ifdef DEF2 // ON 55#ifdef DEF3 // OFF 561 15 jan 15 NOT OK 57#else 581 16 jan 16 NOT OK 59#endif // DEF3 60#else // DEF2 61#ifdef DEF3 621 17 jan 17 NOT OK 63#else 641 18 jan 18 NOT OK 65#endif // DEF3 66#endif // DEF2 67#else // DEF1 68#ifdef DEF2 69#ifdef DEF3 701 19 jan 19 NOT OK 71#else 721 20 jan 20 OK 73#endif // DEF3 74#else // DEF2 75#ifdef DEF3 761 21 jan 21 NOT OK 77#else 781 22 jan 22 NOT OK 79#endif // DEF3 80#endif // DEF2 81#endif // DEF1 82 831 23 jan 23 OK