2013-03-28 7 views
5

इस विकल्प का उपयोग करके मुझे प्रीप्रोकैसिंग के बाद फ़ाइलें मिलती हैं। ऐसी कई पंक्तियां हैं जैसे:g ++ -E विकल्प आउटपुट

# 91 "/usr/include/stdint.h" 3 4 

संख्याओं का क्या अर्थ है? सबसे पहले मैंने सोचा कि #91 लाइन की संख्या है जहां फ़ाइल शामिल है, लेकिन यह नहीं है। और लगभग 3 4 मुझे बिल्कुल कोई जानकारी नहीं है।

उत्तर

8

अनुसार the official documentation करने, लाइन स्वरूप की है:

# linenum filename flags 

linenum निर्दिष्ट करता है कि निम्न पंक्ति में जन्म लिया है उस लाइन नंबर पर filename। तो फिर वहाँ चार झंडे हैं: - एक नई फ़ाइल

  • 2 का प्रारंभ -

    • 1 एक फाइल करने के लिए रिटर्निंग
    • 3 - सिस्टम हेडर फाइल
    • 4-extern "C"
    में लिपटे होने के रूप में इलाज

    तो चलिए अपने लाइनमार्कर की व्याख्या करें:

    # 91 "/usr/include/stdint.h" 3 4 
    

    निम्नलिखित पंक्ति /usr/include/stdint.h की लाइन 91 से उत्पन्न हुई। यह एक सिस्टम हेडर फ़ाइल है और extern "C" में लिपटे के रूप में माना जाना चाहिए।

  • 1

    झंडे (स्पेस द्वारा पृथक) कर रहे हैं और अर्थ है:

    1 - Start of a new file 
    2 - Returning to previous file 
    3 - Following text comes from a system header file (#include <> vs #include "") 
    4 - Following text should be treated as being wrapped in an implicit extern "C" block. 
    
    5

    इन्हें "लाइन मार्कर" कहा जाता है। documentation से:

    स्रोत फ़ाइल नाम और लाइन नंबर जानकारी प्रपत्र

    # linenum filename flags 
    

    ये कहा जाता है linemarkers की तर्ज द्वारा भेजा जाता है। उन्हें आउटपुट में आवश्यकतानुसार डाला जाता है (लेकिन स्ट्रिंग या कैरेक्टर स्थिर के भीतर कभी नहीं)। उनका मतलब है कि निम्न पंक्ति फ़ाइल फ़ाइल नाम में linenum पर उत्पन्न हुई है। filename में कभी भी गैर-प्रिंटिंग वर्ण नहीं होंगे; वे ऑक्टल एस्केप अनुक्रमों के साथ प्रतिस्थापित कर रहे हैं।

    फ़ाइल नाम के बाद शून्य या अधिक झंडे, जो ‘1’, ‘2’, ‘3’, या ‘4’ हैं आता है। यदि कई झंडे हैं, तो रिक्त स्थान उन्हें अलग करते हैं। यह एक नई फ़ाइल के शुरू होने का संकेत -

    • ‘1’: यहाँ झंडे क्या मतलब है।
    • ‘2’ - यह एक फ़ाइल पर लौटने का संकेत देता है (एक और फ़ाइल शामिल करने के बाद)।
    • ‘3’ - यह इंगित करता है कि निम्न पाठ सिस्टम हेडर फ़ाइल से आता है, इसलिए कुछ चेतावनियों को दबाया जाना चाहिए।
    • ‘4’ - यह इंगित करता है कि निम्न पाठ को एक अंतर्निहित extern "C" ब्लॉक में लिपटे के रूप में माना जाना चाहिए।