मुझे सी के साथ सहज महसूस करना शुरू हुआ और फिर मैं टाइप कास्टिंग में भाग गया। मैं निम्नलिखित एक * ज फ़ाइलएक संरचना के लिए एक शून्य सूचक कास्टिंग
struct data {
int value;
char *label;
};
में परिभाषित किया गया है और किया है, तो एक और * ज फ़ाइल
# define TYPE void*
मैं कैसे struct करने के लिए शून्य सूचक डाली ताकि मैं एक का उपयोग कर सकते हैं में इस परिवर्तनीय "प्रकार वैल" जो कार्यों में पारित हो गया है? उदाहरण के लिए, यदि मैं उस मूल्य का उपयोग करना चाहता हूं जो TYPE वैल पॉइंट्स को इंगित करता है, तो मैं इसे कैसे लगा सकता हूं ताकि मैं उस मान को किसी अन्य फ़ंक्शन पर पास कर सकूं?
'# परिभाषित प्रकार टाइप * * एक बुरा विचार है। यह कम से कम 'typedef' होना चाहिए। गौर करें कि निम्नलिखित घोषणा में क्या होगा: 'प्रकार x, y;' या 'const टाइप x;'। – jamesdlin
इसके अलावा, यदि आप 'शून्य *' पॉइंटर्स और सी से निपट रहे हैं, तो आपको कोई स्पष्ट कास्टिंग करने की आवश्यकता नहीं है। सी 'शून्य *' पॉइंटर्स को * निहित * कास्ट करने की अनुमति देता है: 'शून्य * पी = ...; संरचना डेटा * वैल = पी; '। – jamesdlin
@jamesdlin मैं मानता हूं कि यह एक बुरा विचार है, लेकिन यह मेरा विचार नहीं है, इसलिए मुझे इसके साथ जाना है। तो इसके साथ, जब 'टाइप वैल' एक शून्य सूचक के रूप में एक फ़ंक्शन में पारित किया जाता है, तो मैं बस 'संरचना डेटा * temp = val;' घोषित कर सकता हूं, फिर किसी फ़ंक्शन पर अस्थायी पास कर सकता हूं और मुझे temp-> का उपयोग करने में सक्षम होना चाहिए। मूल्य? – user1852050