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 = 3, 12 E2Enumerator3 13 } x2; 14 15 // Name mismatch 16 enum E3 { 17 E3Enumerator1, 18 E3Enumerator2 = 3, 19 E3Enumerator3 20 } x3; 21 22 // Missing enumerator 23 enum E4 { 24 E4Enumerator1, 25 E4Enumerator2, 26 E4Enumerator3 27 } x4; 28 29 // Extra enumerator 30 enum E5 { 31 E5Enumerator1, 32 E5Enumerator2, 33 E5Enumerator3 34 } x5; 35 36 // Matching, with typedef 37 typedef enum { 38 E6Enumerator1, 39 E6Enumerator2 40 } E6; 41 42 E6 x6; 43