क्योंकि, जैसा कि आपने स्वयं कहा था, "संपूर्ण सॉफ़्टवेयर" को एक स्रोत फ़ाइल में रखना संभव नहीं है।
यदि आपका प्रोग्राम बहुत छोटा है, तो हाँ सब कुछ एक .c फ़ाइल में डालने के लिए आसान है। चूंकि आपका प्रोग्राम बड़ा हो जाता है, इसलिए विभिन्न कार्यों को अलग-अलग .c फ़ाइलों में एक साथ रखकर चीजों को व्यवस्थित करना सहायक हो जाता है। इसके अलावा, .h फाइलों में आप उन फ़ाइलों की घोषणाओं को अस्वीकार कर सकते हैं जो हैं जो अन्य .c फ़ाइलों में चीजों द्वारा उपयोग किए जाने के लिए हैं। यदि किसी .c फ़ाइल में ऐसी कोई भी चीज़ नहीं है जो स्वयं के बाहर पहुंच योग्य हो, तो उसे कोई शीर्षलेख की आवश्यकता नहीं है।
उदाहरण के लिए, यदि .c में foo() और fooHelper() फ़ंक्शन है, लेकिन foo() को छोड़कर कोई भी व्यक्ति fooHelper() को सीधे कॉल करने के लिए नहीं है, तो foo() और fooHelper() को foo.c में डालकर, केवल foo.h में foo() की घोषणा डालना, और fooHelper() को स्थिर के रूप में घोषित करना, यह आपके प्रोग्राम के अन्य हिस्सों को केवल foo() तक पहुंचने के लिए प्रोत्साहित करने में मदद करता है और fooHelper() के बारे में नहीं जानना चाहिए या उसकी परवाह नहीं करनी चाहिए। Encapsulation के एक गैर वस्तु उन्मुख रूप की तरह।
अंत में, इंजन केवल उन फ़ाइलों को पुनर्निर्माण करने के लिए पर्याप्त स्मार्ट होते हैं जो अंतिम निर्माण के बाद बदल गए हैं, इसलिए एकाधिक .c फ़ाइलों में विभाजित होना (साझा करने की आवश्यकता रखने के लिए .h फ़ाइलों का उपयोग करके) गति को बढ़ाने में मदद करता है।
स्रोत
2009-07-22 20:12:35
अगर मैं घोषणाओं की जरूरत है कि है कई फाइलों द्वारा साझा किया जाना चाहिए, और वे तार्किक रूप से एक .c फ़ाइल से मेल नहीं खाते हैं? कहें, कुछ # परिभाषित हैं, जिनका उपयोग अधिकांश फाइलों द्वारा किया जाता है। क्या उन सभी के साथ हेडर फ़ाइल बनाना बेहतर नहीं है? कुछ तटस्थ जो एक .c फ़ाइल से संबद्ध नहीं है? –
हां। विचार यह है कि प्रत्येक शीर्षलेख में घोषणाओं का एक समूह होता है जो एक-दूसरे से संबंधित होते हैं। ज्यादातर मामलों में यह फिट बैठता है कि प्रत्येक .c फ़ाइल में संबंधित .h है, लेकिन आप अतिरिक्त .h फ़ाइलें जोड़ सकते हैं (उदा। वैश्विक स्थिरांक या enums को परिभाषित करने के लिए)। आखिरकार, आप इस बात का प्रभारी हैं कि आप अपने कोड को व्यवस्थित करने के लिए हेडर का उपयोग कैसे करते हैं। –
@ जेसनविल्लियम्स: या अतिरिक्त। सी फाइलें, जो भी उचित है। – Deduplicator