मेरी वी.एस. प्रोजेक्ट में मेरे पास निम्न फ़ाइलें हैं:
// list.h # "Node.h" टाइपेडफ़ संरचना सूची list_t; शून्य पुश_बैक (list_t * list_ptr, शून्य * आइटम);
// node.h टाइपेडफ स्ट्रक्चर नोड नोड_टी;
// node.c #include "node.h" संरचना नोड {node_t * अगला; };
// list.c #include "list.h" स्ट्रक्चर सूची {node_t * head; }; शून्य पुश_बैक (list_t * list_ptr, शून्य * आइटम) {if (! List_ptr) रिटर्न; Node_t * node_ptr; // यहां मेरे पास दो कंपाइलर त्रुटियां हैं) मेरे पास कंपाइलर त्रुटियां हैं: और।
क्यों? मैं इस समस्या को ठीक कैसे कर सकता हूं?
यहाँ की सूची एच की तरह दिखती है। प्री-प्रोसेसर के बाद #include लाइन (कुछ टिप्पणियों को बाहर रखा गया है): // list.h typedef struct नोड node_t; टाइपेडफ स्ट्रक्चर सूची list_t; शून्य पुश_बैक (list_t * list_ptr, शून्य * आइटम); जब आप इस हैडर को list.c में उपयोग करते हैं, तो संकलक को struct node के साथ समस्या है क्योंकि यह इस संदर्भ में परिभाषित नहीं है यह केवल नोड में परिभाषित होता है, लेकिन संकलक सूची की सूची से नहीं देख सकता। चूंकि आप केवल node_t पर पॉइंटर्स का उपयोग कर रहे हैं, नोड को बदलने का प्रयास करें .h इस तरह दिखने के लिए: // node.h संरचना नोड; टाइप-फेफ स्ट्रक्चर नोड नोड_टी; अब, आपने पूर्व घोषित किया है कि struct node नामक एक डाटा प्रकार है कम्पाइलर के लिए typedef s को संभालने के लिए पर्याप्त सूचना है और संकेतक बनायें, लेकिन जब से यह पूरी तरह से परिभाषित नहीं हुआ है, तो आप struct node या डी के ऑब्जेक्ट की घोषणा नहीं कर सकते -रिफरेंस स्ट्रक्चर नोड पॉइंटर।
Comments
Post a Comment