1 // Matching 2 enum E1 { 3 E1Enumerator1, 4 E1Enumerator2 = 3, 5 E1Enumerator3 6 } x1; 7 8 // Value mismatch 9 enum E2 { 10 E2Enumerator1, 11 E2Enumerator2 = 4, 12 E2Enumerator3 13 } x2; 14 15 // Name mismatch 16 enum E3 { 17 E3Enumerator1, 18 E3Enumerator = 3, 19 E3Enumerator3 20 } x3; 21 22 // Missing enumerator 23 enum E4 { 24 E4Enumerator1, 25 E4Enumerator2 26 } x4; 27 28 // Extra enumerator 29 enum E5 { 30 E5Enumerator1, 31 E5Enumerator2, 32 E5Enumerator3, 33 E5Enumerator4 34 } x5; 35 36 // Matching, with typedef 37 typedef enum { 38 E6Enumerator1, 39 E6Enumerator2 40 } E6; 41 42 E6 x6; 43