2011-12-08 17 views
12

सक्षम करने के लिए -trigraphs का उपयोग करें मेरा कंपाइलर (जीसीसी) मुझे यह चेतावनी दे रहा है। कृपया मेरी मदद को समझने के लिए इसका क्या मतलब:ट्रिगर ??/अनदेखा,

चेतावनी: trigraph ??/नजरअंदाज कर दिया, उपयोग -trigraphs

+0

'?? /' बैकस्लैश के समतुल्य है, तो आप त्रिकोण को "\" –

+1

पर प्रतिस्थापित कर सकते हैं जब तक कि आप मेनफ़्रेम 3270 टर्मिनल पर सी कोड संपादित नहीं कर रहे हैं, या फिर आगे, यह एक "अच्छा विचार" है "??" की घटना लिखने के लिए पैरानोआ के लिए "? \?" के रूप में। (कुछ वर्ण, जैसे {} [] \, कई मेनफ्रेम चरित्र सेटों के साथ-साथ अन्य सिस्टम के लिए कुछ गैर-अंग्रेज़ी कीबोर्ड में अनुपस्थित हैं।) – BRFennPocock

+1

सी स्ट्राइक के धूलदार कोनों को फिर से ... –

उत्तर

16

आपके पास सक्षम करने के लिए "गलती" अपने स्रोत कोड में एक trigraph कहीं लिखा (संकलक के चेतावनी लाइन को इंगित करेगी)। चूंकि ट्रिग्राफ का आविष्कार उन समस्याओं को हल करने के लिए किया गया था जो आधुनिक सिस्टम पर नहीं आते हैं, आप वास्तव में ??/ को वर्ण \ के साथ प्रतिस्थापित करने के लिए नहीं चाहते हैं।

इसलिए, इस चेतावनी को शायद अनदेखा किया जाना चाहिए (आप अपने कमांड लाइन में -Wall के बाद -Wno-trigraphs जोड़कर बंद करने के लिए संकलक को बता सकते हैं; docs देखें)। लेकिन यह आपके स्रोत कोड को दिखाने के लिए अच्छा होगा ताकि हम सुनिश्चित हो सकें।

4

एक कंपाइलर ध्वज जोड़ने के बजाय, आप \, यानी \?\?- के साथ प्रत्येक प्रश्न चिह्न से बच सकते हैं। इससे मेरे मामले में मदद मिली।

+0

कंपाइलर ध्वज मामलों के लिए माना जाता है जहां आप इसे ध्यान में रखे बिना एक ट्रिगर लिखते हैं वह एक है। फिर कंपाइलर आपको इसके बारे में परेशान नहीं करेगा। यदि आप लिखने के समय जानते थे कि यह एक अनजान ट्रिगर है, तो आप संकलित झंडे को भूलने और भूलने के बाद इसे से बच सकते हैं। –

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