GCC 7.3 - 2.5. Alternatives to Wrapper #ifndef

2.5 वैकल्पिक आवरण #ifndef के लिए




gcc

2.5 वैकल्पिक आवरण #ifndef के लिए

CPP यह इंगित करने के दो और तरीकों का समर्थन करता है कि हेडर फ़ाइल को केवल एक बार पढ़ा जाना चाहिए। न तो कोई रैपर ' #ifndef ' की तरह पोर्टेबल है और हम आपको सलाह देते हैं कि आप उन्हें नए कार्यक्रमों में इस्तेमाल न करें, इस बात के लिए कि ' #import ' ऑब्जेक्टिव-सी में मानक अभ्यास है।

CPP im #incporte ’के एक संस्करण का समर्थन करता है जिसे port #import ’ कहा जाता है जिसमें एक फ़ाइल शामिल होती है, लेकिन ऐसा एक बार में होता है। यदि आप ' #include ' के बजाय ' #import ' का उपयोग करते हैं, तो आपको सामग्री के कई समावेश को रोकने के लिए शीर्ष लेख फ़ाइल के अंदर सशर्त की आवश्यकता नहीं है। ऑब्जेक्टिव-सी में ' #import ' मानक है, लेकिन C और C ++ में एक अविकसित विस्तार माना जाता है।

#import ’एक अच्छी तरह से डिज़ाइन की गई सुविधा नहीं है। यह हेडर फ़ाइल के उपयोगकर्ताओं को यह जानने की आवश्यकता है कि इसे केवल एक बार शामिल किया जाना चाहिए। हेडर फ़ाइल के कार्यान्वयनकर्ता के लिए फ़ाइल लिखना बेहतर होता है ताकि उपयोगकर्ताओं को यह जानने की आवश्यकता न हो। रैपर ' # शिफॉन ' का प्रयोग इस लक्ष्य को पूरा करता है।

वर्तमान कार्यान्वयन में, ' #import ' के एक एकल उपयोग से फ़ाइल को फिर से पढ़ने से रोका जा सकता है, ' #import ' या ' #include '। आपको इस पर भरोसा नहीं करना चाहिए; एक ही हेडर फ़ाइल को संदर्भित करने के लिए ' #import ' और ' #include ' दोनों का उपयोग न करें।

हेडर फ़ाइल को एक से अधिक बार शामिल होने से रोकने का एक अन्य तरीका ' #pragma एक बार ' निर्देश के साथ है। यदि हेडर फ़ाइल को स्कैन करते समय ' #pragma एक बार ' दिखाई देता है, तो उस फ़ाइल को फिर कभी नहीं पढ़ा जाएगा, चाहे जो भी हो।

' #pragma एक बार ' में वे समस्याएं नहीं होती हैं जो ' #import ' करती हैं, लेकिन यह सभी प्रीप्रोसेसरों द्वारा मान्यता प्राप्त नहीं है, इसलिए आप पोर्टेबल प्रोग्राम में इस पर भरोसा नहीं कर सकते।

अगला: गणना में शामिल है , पिछला: केवल-एक बार हेडर , ऊपर: हैडर फाइलें [ Contents ] [ Index ]