GCC 7.3 - 2.8. System Headers

2.8 सिस्टम हेडर




gcc

2.8 सिस्टम हेडर

ऑपरेटिंग सिस्टम और रनटाइम लाइब्रेरी के लिए इंटरफेस की घोषणा करने वाली हेडर फाइलें अक्सर सी के कड़ाई से अनुरूप नहीं लिखी जा सकती हैं। इसलिए, जीसीसी सिस्टम हेडर विशेष उपचार में पाया गया कोड देता है। सभी चेतावनी, ' #warning ' ( Diagnostics देखें) द्वारा उत्पन्न के अलावा, दमन किया जाता है जबकि GCC एक सिस्टम हेडर को संसाधित कर रहा है। सिस्टम हेडर में परिभाषित मैक्रोज़ कुछ चेतावनियों के लिए प्रतिरक्षित होते हैं जहाँ भी उनका विस्तार होता है। यह प्रतिरक्षा एक तदर्थ आधार पर दी जाती है, जब हम पाते हैं कि सिस्टम हेडर में परिभाषित मैक्रोज़ में कोड के कारण एक चेतावनी बहुत सारी झूठी सकारात्मकता उत्पन्न करती है।

आम तौर पर, केवल विशिष्ट निर्देशिकाओं में पाए जाने वाले हेडर को सिस्टम हेडर माना जाता है। जीसीसी संकलित होने पर इन निर्देशिकाओं का निर्धारण किया जाता है। हालाँकि, सिस्टम हेडर में सामान्य हेडर बनाने के दो तरीके हैं:

  • निर्देशिकाओं में पाई गई हैडर फाइल्स को -isystem और -idirafter कमांड लाइन विकल्पों के साथ खोज पथ पर जोड़ा जाता है, जिन्हें निदान के प्रयोजनों के लिए सिस्टम हेडर के रूप में माना जाता है।
  • एक निर्देश भी है, #pragma GCC system_header , जो GCC को वर्तमान के बाकी हिस्सों पर विचार करने के लिए कहता है, एक सिस्टम हेडर फ़ाइल शामिल करें, चाहे वह कहीं भी पाया गया हो। फ़ाइल में ' #pragma ' से पहले आने वाला कोड प्रभावित नहीं होता है। #pragma GCC system_header का प्राथमिक स्रोत फ़ाइल में कोई प्रभाव नहीं है।