मुझे कुछ (विरासत) कोड मिला है जिसे मैं पहली बार क्लैंग के साथ बना रहा हूं।क्या क्लैंग के साथ ट्रिगर को अक्षम करने के लिए कोई स्विच है?
sprintf(buf, "%s <%s ????>", p1, p2);
बजना निम्नलिखित चेतावनी (-Werror
साथ त्रुटि) देता है:: कोड कुछ की तरह है
test.c:6:33: error: trigraph converted to '}' character [-Werror,-Wtrigraphs]
sprintf(buf, "%s <%s ????>", p1, p2);
^
जाहिर ??>
एक trigraph के रूप में इरादा नहीं है, तो मैं पूरी तरह से trigraphs अक्षम करना चाहते हैं (स्रोत जानबूझकर उन्हें कहीं भी उपयोग नहीं करता है)।
मैं -no-trigraphs
की कोशिश की है लेकिन वह वास्तव में एक विकल्प नहीं है:
clang: warning: argument unused during compilation: '-no-trigraphs'
मैं trigraphs -Wno-trigraphs
साथ चेतावनी बंद कर सकते हैं, लेकिन मैं नहीं करना चाहती trigraph वास्तव में रूपांतरण बिल्कुल जगह लेने के लिए।
नोट: ट्रिग्राफ को -std=c89
का उपयोग करने के अनपेक्षित दुष्प्रभाव के रूप में सक्षम किया गया था।
ओच! जीसीसी के पास सख्त अनुपालन मोड में भी ट्रिग्राफ को अनदेखा करने की एक समझदार नीति है, जब तक कि आप '-ग्रीग्राफ' के साथ आग में हाथ न रखें। 'Sed' तोड़ने का समय? या समकक्ष। –
वास्तव में जीसीसी के सख्त अनुपालन मोड ('-std = c89',' -std = c99', आदि) ट्रिगर रूपांतरण चालू करते हैं। – zwol
और यदि कोई सोच रहा है कि डब्लूटीएच एक ट्रिगर है। [यहां टट्टू है] (http://stackoverflow.com/questions/7825055/what-does-the-c-operator-do) ... – Mysticial