struct node
{
int coef;
int exp;
struct node *link;
};
typedef struct node *NODE;
उत्तर
यह NODE
struct node *
के लिए एक टाइपपीफ बनाता है।
इस कोड को लिखने का एक बेहतर तरीका क्या होगा ... एक ही अर्थ को बनाए रखना। – Skr
टाइपपीफ को छोड़ने का एक बेहतर तरीका होगा, और सूचक प्रकार को 'संरचना नोड *' के रूप में देखें। –
यह प्रकार struct node *
के पर्याय के रूप NODE
परिभाषित करता है, इसलिए जब आप प्रकार का एक चर घोषित किया जाएगा NODE
आप वास्तव में हो जाएगा struct node
के लिए सूचक की घोषणा।
व्यक्तिगत रूप से, मुझे नहीं लगता कि इस तरह की घोषणा एक अच्छा विचार है: आप "एक पॉइंटर छुपा रहे हैं" (जो लगभग हमेशा एक बुरा विचार है), और इसके अलावा, आप इस तथ्य को किसी भी तरह से हाइलाइट नहीं कर रहे हैं नए नाम में।
+1 "एक टाइपेडफ के पीछे पॉइंटर प्रकार छिपाएं" –
+1 इसी कारण से। 'नोड' के बजाय इसे 'नोडिप्टर' नामकरण करने में मदद मिलेगी, लेकिन फिर 'टाइपिफ़' को कोई कारण नहीं है। –
"टाइपिफ़ के पीछे पॉइंटर प्रकार छिपाएं" इस – Skr
NODE
struct node*
के लिए उपनाम बन जाता है।
संपादित करें: ठीक है, टिप्पणी के लिए (अगर मैं टिप्पणी के रूप में मेरा उत्तर लिखते हैं, यह बहुत लंबा और स्वरूपित नहीं होगा):
इस लिखने के लिए कोई अलग तरह से नहीं है। यहां, typedef
का उपयोग पॉइंटर से struct node
के लिए समानार्थी/उपनाम बनाने के लिए किया जाता है।
उपयोग के लिए एक उदाहरण होगा:
void f()
{
// some code
NODE p = NULL;
// do something with p
// for example use malloc and so on
// like: p = malloc(sizeof(struct node));
// and access like: p->coef = ..; p->expr = ..
// do something with p and free the memory later (if malloc is used)
}
(वैसे भी, मैं इस तरह के typedef
सलाह नहीं होगा, जैसा कि आप छुपा रहे हैं एक ही
void f()
{
// some code
struct node* p = NULL;
// do something with p
}
का उपयोग NODE
यह सिर्फ कम करता है, कि यह सूचक है, struct
या अन्य प्रकार का नहीं है, जैसा कि @Matteo Italia के उत्तर में उल्लिखित है)।
प्रारूप, आप रेफर कर रहे हैं: "टाइपपीफ स्ट्रक्चर {} टाइप_नाम प्रारूप" कुछ और है। यह C
में struct
कीवर्ड लिखने से बचने के लिए एक प्रकार की चाल है (क्योंकि यह C
में अनिवार्य है, और C++
में नहीं है)। तो
typedef struct node
{
//..
} NODE;
struct node
के लिए NODE
उर्फ होगा। तो, एक ही उदाहरण के रूप में ऊपर:
void f()
{
// some code
NODE p;
// do something with p
// note that now p is automatically allocated, it's real struct
// not a pointer. So you can access its members like:
// p.coef or p.expr, etc.
}
रूप
void f()
{
// some code
struct node p;
// do something with p
}
नोट है कि अब, p
नहीं एक सूचक है एक ही है, यह struct node
है।
typedef struct node *NODE
क्या इंगित करता है?
यह इंगित करता है जो एक व्यक्ति नहीं सीखा है कि अपरकेस कोई अच्छा
रिजर्व सभी अपरकेसमैक्रो के लिए पहचानकर्ता है।
चीयर्स & hth।,
इसके अलावा, मुझे नहीं लगता कि 'NODE' को '*' –
@ पीटरली: धन्यवाद, मैंने इसका उल्लेख करने के बारे में नहीं सोचा था। एचएम, मुझे यह उत्सुक लगता है कि सबसे अधिक उत्तर दिया गया उत्तर वह है जो * यह इंगित करता है कि यह "इंगित करता है" के बारे में सवाल का जवाब नहीं देता है, और यह उत्तर, प्रश्न को संबोधित करने वाला एकमात्र व्यक्ति डाउनवॉट किया गया है। ऐसा एसओ है। –
भले ही आप बहुत ठोस और ठंडा हों। भले ही आपके पास मामले के लिए अच्छी टिप्स हों। लोगों को अपमानित करना बहुत अच्छा विचार नहीं है। B.t.w. यह सवाल के लिए एक उचित जवाब नहीं है। उत्तर को कम करने का यह मुख्य कारण है। – I159
बस आप हर बार केवल नोड का उपयोग कर के बजाय struct नोड * हर writting नोड प्रकार का सूचक बना सकते हैं बताता है
- 1. स्ट्रक्चर टाइपपीफ
- 2. टाइपपीफ स्ट्रक्चर पॉइंटर परिभाषा
- 3. 'नोड - हार्मनी' क्या करता है?
- 4. सी ++ में 'स्ट्रक्चर' और 'टाइपपीफ स्ट्रक्चर' के बीच अंतर?
- 5. System.Web.Configuration.MachineKeySection.MetineKeySection.GetDecodedData इंगित करता है
- 6. मैकॉक्स-वर्जन-मिनट क्या इंगित करता है?
- 7. एक प्रतिनिधि क्या इंगित करता है?
- 8. नोड() | @ * मतलब एक्सएसएलटी क्या है?
- 9. टाइपपीफ का उपयोग क्या है?
- 10. क्या सी ++ पीओडी टाइपपीफ की वैल्यू प्रारंभिक करता है?
- 11. जावा नोड सामान्य विधि क्या करता है?
- 12. Jtable Node
- 13. क्या कोई समस्या है यदि हम mysql node js मॉड्यूल
- 14. php में डेटा प्रकार स्ट्रक्चर करता है?
- 15. टाइपपीफ
- 16. टाइपपीफ
- 17. कीवर्ड "नया" सी # में एक स्ट्रक्चर में क्या करता है?
- 18. क्या डोमेन नाम एक विशिष्ट फ़ोल्डर को इंगित करता है?
- 19. एसबीवाइट प्रक्रिया राज्य फ्रीबीएसडी टॉप में क्या इंगित करता है?
- 20. क्या कोई सूचक एलएसबी या एमएसबी को इंगित करता है?
- 21. प्रत्येक sc-win32-status code क्या इंगित करता है?
- 22. स्प्रिंग में @ वालिड एनोटेशन क्या इंगित करता है?
- 23. winmd फ़ाइलों के लिए संस्करण 255.255.255.255 क्या इंगित करता है?
- 24. आईओएस फ़ाइल पथ पर/निजी उपसर्ग क्या इंगित करता है?
- 25. टाइपपीफ बनाम स्ट्रक्चर/यूनियन/एनम के पीछे तर्क क्या है, क्या केवल एक नामस्थान नहीं हो सकता है?
- 26. टेम्पलेट टाइपपीफ - आपका काम क्या है?
- 27. इस टाइपपीफ का अर्थ क्या है?
- 28. एनपीएम नोड v0.8.5 के साथ काम नहीं करता है?
- 29. 'संदर्भ' टाइपपीफ वास्तव में कैसे व्यवहार करता है?
- 30. नोड-छविमैजिक नोड-जीएम की तुलना कैसे करता है?
कृपया हालांकि वास्तविक कोड में typedefs पीछे सूचक प्रकार छिपा नहीं है । –
खराब स्वाद। एससीएनआर – ninjalj
इस कोड को लिखने का बेहतर तरीका क्या होगा। पुस्तक संरचना में 3 से 4 तरीकों से उपयोग किया जाता है ... – Skr