2011-01-17 26 views
6

टाइप कोड में टाइप किए गए टाइप को क्यों आवश्यक है?टाइपिंगफ एनम प्रकार के साथ क्यों प्रयोग किया जाता है?

typedef enum _Coordinate { 
    CoordinateX = 0, ///< X axis 
    CoordinateY = 1, ///< Y axis 
    CPCoordinateZ = 2 ///< Z axis 
} Coordinate; 

क्यों न केवल नीचे कोड है और टाइपपीफ को हटा दें?

enum Coordinate { 
    CoordinateX = 0, ///< X axis 
    CoordinateY = 1, ///< Y axis 
    CPCoordinateZ = 2 ///< Z axis 
}; 
+0

अंडरस्कोर से शुरू होने वाले नाम किसी भी संदर्भ में आरक्षित होते हैं (यह नया सी कीवर्ड का उपयोग करता है: उदाहरण के लिए C99 से '_Bool',' _Complex', '_Atomic',' _Generic' C1x से) - उपयोग इसके बजाय एक पीछे अंडरस्कोर ... – Christoph

उत्तर

11

आप भले ही आप जानते हैं Coordinate एक enum है आप, बस Coordinate के बजाय enum Coordinate के रूप में यह उल्लेख करने के लिए अपने enum नहीं typedef करते हैं अपने अन्य कोड में,। यह अनुमान लगाते समय enum कीवर्ड की अनावश्यकता को खत्म करने के लिए है, मुझे लगता है।

यह स्पष्ट करने के लिए यहां यह कैसा लगेगा अगर आप typedef इसे अलग से यह घोषित करने से:

enum _Coordinate { 
    CoordinateX = 0, 
    CoordinateY = 1, 
    CPCoordinateZ = 2 
}; 

// You map the enum type "enum _Coordinate" to a user-defined type "Coordinate" 
typedef enum _Coordinate Coordinate; 

यह भी सी structs और enums पर लागू होता है (Obj सी enums सिर्फ सी enums वैसे भी कर रहे हैं) ।

संबंधित मुद्दे