2011-02-28 16 views
5

संभावित डुप्लिकेट:
Purpose of struct, typedef struct, in C++
typedef struct vs struct definitionsटाइपपीफ संरचना और enum, क्यों?

कोड में है कि मैं बनाए रखने कर रहा हूँ मैं अक्सर निम्न देखें:

typedef enum { blah, blah } Foo; 
typedef struct { blah blah } Bar; 

बजाय:

enum Foo { blah, blah }; 
struct Bar { blah blah }; 

मैं हमेशा बाद वाले का उपयोग करता हूं, और यह पहली बार है जब मैं पूर्व को देख रहा हूं। तो सवाल यह है कि क्यों एक दूसरे के ऊपर एक शैली का उपयोग करेगा। कोई लाभ? क्या वे कार्यशील रूप से समान हैं? मेरा मानना ​​है कि वे हैं लेकिन 100% निश्चित नहीं हैं।

उत्तर

9

सी ++ में इससे कोई फर्क नहीं पड़ता।

सी, struct एस, enum एस, और union एस एक अलग "नेमस्पेस" में थे, जिसका अर्थ है कि उनके नाम परिवर्तनीय नामों के साथ संघर्ष कर सकते हैं। अगर आप कहते हैं

struct S { }; 

तो आप कह सकते हैं कुछ की तरह

struct S S; 

और मतलब यह होगा कि कि struct S डेटा प्रकार है, और S चर नाम है। आप यह नहीं कह सकता है

S myStruct; 
सी में

अगर S एक struct (और नहीं एक प्रकार का नाम) था, इसलिए लोगों को अभी typedef इस्तेमाल किया struct हर समय कह से बचने के लिए।

+0

'enum',' union', और 'struct' का एक ही मुद्दा है। – Mehrdad

+0

हाँ, मैंने आपका जवाब दोबारा पढ़ लिया और महसूस किया कि और फिर मेरी टिप्पणी हटा दी गई। उफ़। धन्यवाद! – anio

+0

@anio: हाहा ठीक है, कोई समस्या नहीं है। – Mehrdad

3

वे सी संगतता के लिए हैं। एक सामान्य

struct Bar { blah, blah }; 

सी के साथ समान कार्य नहीं करता है;

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