2009-07-03 9 views
36

में विशिष्ट चेतावनियों को अक्षम करें माइक्रोसॉफ्ट कंपाइलर्स पर, अन्य चेतावनियों को अक्षम किए बिना विशिष्ट चेतावनियों को #pragma के साथ अक्षम किया जा सकता है। यह एक बेहद उपयोगी सुविधा है यदि संकलक कुछ ऐसा करने की चेतावनी देता है जिसे "करना है"।जीसीसी

क्या इस बिंदु पर जीसीसी की एक समान सुविधा है? यह एक स्पष्ट पर्याप्त विशेषता की तरह लगता है कि यह अकल्पनीय है कि इसमें अभी तक यह सुविधा नहीं होगी, लेकिन वेब पर पुरानी जानकारी से पता चलता है कि यह सुविधा मौजूद नहीं है।

जीसीसी में उपयोग करने के लिए क्या है?

विशेष रूप से, मैं 'एबीसी' जैसे बहु-चरित्र स्थिरांक का उपयोग करना पसंद करता हूं। ये बेस 256 नंबर के रूप में प्रभावी रूप से मूल्यांकन करते हैं - एक बहुत ही आसान सुविधा, लेकिन यह एक चेतावनी ट्रिगर करता है। एक केस स्टेटमेंट में चार चरित्र तारों पर स्विच करने के लिए यह बहुत आसान है।

+3

डुप्लिकेट: http://stackoverflow.com/questions/487108/how-to-supress-specific-warnings-in-g http://stackoverflow.com/ प्रश्न/925179/चुनिंदा हटाने-चेतावनी http://stackoverflow.com/questions/965093/selectively-disable-gcc-warnings-for-only-part-of-a-translation-unit –

उत्तर

33

यह जीसीसी के diagnostic pragmas के साथ किया जा सकता है।

+0

यह अपग्रेड करने के बाद उपयोगी होगा एक नए जीसीसी के लिए। यह एक नई सुविधा प्रतीत होता है। –

24

जीसीसी मैनुअल से:

Many options have long names starting with -f or with -W---for example, 
    -fforce-mem, -fstrength-reduce, -Wformat and so on. Most of these have 
    both positive and negative forms; the negative form of -ffoo would be 
    -fno-foo. This manual documents only one of these two forms, whichever 
    one is not the default. 

लेकिन आप पूछ रहे हैं अगर एक स्रोत-स्तरीय चेतावनी अक्षम है कि क्या वहाँ, मुझे पता है कि अगर सुविधा जीसीसी में मौजूद नहीं हूँ।

11

-Wno-multichar: अगर एक multicharacter निरंतर ('foof') प्रयोग किया जाता है

चेतावनी न दें। आम तौर पर वे उपयोगकर्ता के कोड में एक टाइपो इंगित करते हैं, क्योंकि उनके पास कार्यान्वयन-परिभाषित मान हैं, और पोर्टेबल कोड में उपयोग नहीं किया जाना चाहिए।

More information

7

अंदर स्रोत कोड लिखने:

#pragma GCC diagnostic ignored "-Wno-multichar" 

// code with warnings but wont be displayed now... 
+0

यह भी ध्यान रखना अच्छा है कि '#pragma जीसीसी डायग्नोस्टिक पुश' और '#pragma जीसीसी डायग्नोस्टिक पॉप' का उपयोग करके कोड के छोटे बिट्स के लिए निदान सेट किया जा सकता है। – Hector