#define A 7
#define B
#define C 4
#define D 6

#ifndef B
 Test #1: ------> FAIL
#else
  #ifdef C 1 
     Test #1: ------> FAIL
  #elseifdef C 4
     Test #1: PASS
  #endif
#endif


//============================================
#ifndef B
 Test #2: ------> FAIL
#else
  Test #2: PASS-1 
  #ifdef C 4 
     Test #2: PASS-2
  #elseifdef C 1
     Test #2: ------> FAIL
  #endif
  Test #2: PASS-3
#endif

//============================================
#ifndef K
 Test #3: PASS
#else
  Test #3: ------> FAIL
  #ifdef C 1 
     Test #3: ------> FAIL
  #elseifdef C 4
     Test #3: ------> FAIL
  #endif
  Test #3: ------> FAIL
#endif

//============================================
#ifndef B
 Test #4: ------> FAIL
#else
  Test #4: PASS-1
  #ifdef C 4 
     Test #4: PASS-2
     #ifdef B
        Test #4: PASS-3
        #ifdef B 1
          Test #4: ------> FAIL
        #elseifdef B
           #ifndef G
              Test #4: PASS-4
           #endif
           Test #4: PASS-5
        #endif
     #elseifdef C
        Test #4: ------> FAIL
     #else
        Test #4: ------> FAIL
  #elseifdef C 1
     Test #4: ------> FAIL
  #endif
  Test #4: PASS-6
#endif

//============================================
#ifdef A && B && C 4 && D 6
  Test #5: PASS-1
#elseifdef A || B
  Test #5: ------> FAIL
#elseifdef D
  #ifdef A
    Test #5: ------> FAIL
  #elseifdef B
    Test #5: ------> FAIL
  #else
    Test #5: ------> FAIL    
  #endif
#endif