2011-05-23 7 views
6

मैंने सुना है कि आपको कई परिभाषाओं की संभावना के कारण हेडर फ़ाइलों में कुछ भी परिभाषित नहीं करना चाहिए, लेकिन यदि आपके पास गार्ड शामिल हैं, तो ऐसा नहीं होना चाहिए, है ना? चर के लिए बाहरी जोड़ने के लिए अन्य कारण क्या हैं?बाहरी चर - क्यों?

उत्तर

12

गार्ड शामिल करें केवल एक ही translation unit (उर्फ संकलन इकाई) के भीतर शीर्षलेख को शामिल करने से रोकें। यह लिंक समय पर अलग-अलग अनुवाद इकाइयों से कई परिभाषाओं की समस्या का समाधान नहीं करता है। इसलिए आपको केवल घोषणाओं को हेडर (.h) फ़ाइलों में, और परिभाषा स्रोत (.c) फ़ाइलों में परिभाषित करना चाहिए।

+0

आह, अब मैं समझता हूं। धन्यवाद :)। – someguy

1

जब आप एक स्रोत फ़ाइल (अधिक विशेष रूप से, एक अनुवाद इकाई) में परिभाषित किया जाता है, तो आप आमतौर पर हेडर फ़ाइलों में extern चर घोषित करते हैं, और दूसरे में संदर्भित किया जाता है।

संबंधित मुद्दे