मेरे पास दो सी फाइलें हैं, foo.c कार्यक्षमता और test_foo.c के साथ foo.c. के कार्यों का परीक्षण करती है।बाहरी टाइपपीफ संरचना कैसे घोषित करें?
क्या स्ट्रिप टाइपिफ़ BAR
तक पहुंचने का कोई तरीका है, मैंने test_foo.c में foo.c में हेडर फ़ाइल का उपयोग किए बिना परिभाषित किया है? अब तक, मैं एक एच फाइल से बचने में सक्षम था ताकि पूरे कार्यक्रम में foo.c. शामिल होगा। धन्यवाद।
foo.c
typedef struct BAR_{...} bar;
BAR *bar_new(...) {..}
test_foo.c
extern BAR *bar_new(...)
error: expected declaration specifiers or ‘...’ before ‘BAR’
हेडर फ़ाइल में परिभाषा को स्थानांतरित करना केवल सही समाधान है यदि test_foo.c (या foo.c के बाहर किसी भी अन्य मॉड्यूल) को सामग्री संरचना तक पहुंचने की आवश्यकता है। यदि यह एक एडीटी है या किसी अन्य कारण के लिए test_foo.c प्रकार के आंतरिक की आवश्यकता नहीं है, तो मुझे लगता है कि आगे की घोषणा एक बेहतर समाधान है। – harald
अभी के लिए, मैंने सिर्फ परिभाषा को अन्य सी फाइल में कॉपी किया है। – Framester
मैं वही कर रहा हूं - मैं एक परीक्षण दोहन विकसित कर रहा हूं जिसे उत्पादन कोड के चारों ओर लपेटना है। उत्पादन कोड में संरचना परिभाषा का कोई व्यवसाय सार्वजनिक नहीं होता है और इसे दफनाया जाना चाहिए। इसलिए मुझे अपनी टेस्ट दोहन में परिभाषा की प्रतिलिपि बनाना पड़ा। यह नकल है लेकिन मेरा लिंकर मुझे चेतावनी देने के लिए काफी समझदार है अगर कोई बदलता है लेकिन दूसरा नहीं। – Nick