मैं फिलहाल जीसीसी मैनुअल पढ़ रहा हूं, विशेष रूप से चेतावनी/त्रुटि झंडे के बारे में हिस्सा। -वेक्स्ट्रा ध्वज के बारे में हिस्सा पढ़ने के बाद, मुझे आश्चर्य है कि यह बिल्कुल उपयोगी है या नहीं। ऐसा लगता है कि यह ऐसी चीजों के बारे में शिकायत करता है जो अपेक्षाकृत या स्वाद का विषय प्रतीत होता है। मैं जीसीसी के साथ अनुभव नहीं कर रहा हूं, मैं केवल समय-समय पर विश्वविद्यालय में कुछ छोटी परियोजनाओं के लिए इसका उपयोग करता हूं, इसलिए सभी अनुभवी सी/सी ++ (या जो भी भाषा आप जीसीसी का उपयोग करते हैं) के लिए, वाक्स्ट्रा के साथ क्या सौदा है?-Wextra वास्तव में कितना उपयोगी है?
उत्तर
-Wextra
, अन्य सामान बीच -Wtype-limits
का अर्थ है:
चेतावनी दें यदि एक तुलना हमेशा डेटा प्रकार की सीमित रेंज की वजह से सच है या हमेशा गलत है, लेकिन निरंतर भाव के लिए सचेत न करें । उदाहरण के लिए, चेतावनी दें कि एक हस्ताक्षरित चर शून्य के मुकाबले शून्य के मुकाबले '<' या '> =' है। यह चेतावनी -Wextra द्वारा भी सक्षम है।
मुझे यह वास्तव में उपयोगी लगता है।
मैं शोर को हटाने के लिए आमतौर पर -Wno-sign-compare
और -Wno-unused-parameter
जोड़ता हूं।
गर्भित -Wuninitialized
(-O2
विकल्प के साथ) बहुत मेरे लिए उपयोगी है, लेकिन अपने कोड आधार के लिए शुरू में इसे जोड़ने के लिए थोड़ा कठिन हो सकता है। एक तरीका यह से निपटने के लिए दो मैक्रो को जोड़ने के लिए है (जो थोड़ा अजीब लग रही है: बराबर के चिह्न जानबूझकर है):
#define ELIMINATE_GCC_WARNING = 0 // used to remove nuisance warnings
#define UNCHECKED_GCC_WARNING = 0 // not yet verified
तो फिर तुम जल्दी से जीसीसी चेतावनी को खत्म करने और जैसे का उपयोग करके एक साफ संकलन प्राप्त कर सकते हैं:
int foo UNCHECKED_GCC_WARNING;
फिर वैकल्पिक विकल्प के रूप में वापस जाएं और इन परिवर्धनों की जांच करें, और उन्हें एक-एक करके ELIMINATE_GCC_WARNING में बदलें। यह धीमा हो सकता है। लेकिन अगर आपको कुछ मौजूदा बग नहीं मिली तो मुझे आश्चर्य होगा।
कृपया http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html देखें।
इसलिए यह केवल 'हमेशा सत्य' तुलना (-Wignign-तुलना) के लिए उपयोगी नहीं है बल्कि अन्य संकलन समस्याओं की पहचान भी करता है। मुझे यह अक्सर उपयोगी लगता है।
- 1. Response.IsClientConnected कितना उपयोगी है?
- 2. क्या एमवीवीएम वास्तव में उपयोगी है?
- 3. ओआरएम (लिंक, हाइबरनेट ...) वास्तव में उपयोगी है?
- 4. सी # का कितना उपयोगी है ?? ऑपरेटर?
- 5. 'शुद्ध' एमवीसी कार्यान्वयन कितना उपयोगी है?
- 6. वास्तव में उपयोगी वीबी 6 स्रोत कोड
- 7. सत्यापन पैरामीटर वास्तव में उपयोगी हैं?
- 8. क्या रेल की सुरक्षा_from_forgery वास्तव में उपयोगी है?
- 9. वास्तव में कोड कितना एक्स्टेंसिबल होना चाहिए?
- 10. वास्तव में फ़ॉन्ट का निपटान करना कितना महत्वपूर्ण है?
- 11. कीवर्ड 'पैराम्स' वास्तव में कितना कीवर्ड काम करता है?
- 12. टाइमआउट पैटर्न - कितना बुरा थ्रेड है। वास्तव में?
- 13. टेम्पलेट संकलन वास्तव में कितना समय ले सकता है?
- 14. पेपैल एकीकरण (आईपीएन) - यह वास्तव में कितना संभव है?
- 15. PHP मैक्रिप्ट, वास्तव में यह कितना सुरक्षित है?
- 16. क्या नामस्थान वास्तव में ढांचे में उपयोगी हैं?
- 17. एएनएसआई सी यूनियन - क्या वे वास्तव में उपयोगी हैं?
- 18. क्या मुद्रा स्वरूपण कार्य वास्तव में उपयोगी हैं?
- 19. आप वास्तव में कितना एप्लिकेशन सत्र डेटा रख सकते हैं?
- 20. LINQ कितना अनूठा है?
- 21. ब्लूम फ़िल्टर कब उपयोगी है?
- 22. दुर्भावनापूर्ण फ़्रेमिंग के विरुद्ध सुरक्षा में एक्स-फ़्रेम-विकल्प शीर्षलेख कितना उपयोगी है?
- 23. @ उपयोगी कब होता है?
- 24. नोएसक्यूएल वास्तव में क्या है?
- 25. __proto__ कब उपयोगी है?
- 26. फ़ाइल.जॉइन उपयोगी कब है?
- 27. ग्रोवी ++ कितना उपयोग योग्य है?
- 28. स्पिनलॉक्स, वे कितने उपयोगी हैं?
- 29. jquery है। हमेशा उपयोगी है?
- 30. स्रोत फ़िल्टर वास्तव में क्या है?
मुझे '-Wno-unused-पैरामीटर 'मदद मिलती है, खासकर जब पुराने स्रोत कोड वर्षों से बदलते हैं, कभी-कभी मूल्यों को नेस्टेड फ़ंक्शंस को पारित किया जाता है जिसका उपयोग भी नहीं किया जाता है। सुझाव UNUSED परिभाषित करें। '#define अप्रयुक्त (एक्स) UNUSED_ ## x __attribute __ ((__ अप्रयुक्त __))' तो फिर तुम इस ... 'शून्य समारोह की तरह तर्क लपेट कर सकते हैं (एक int, int अप्रयुक्त (ख)) {... } ' यह भी अच्छा है कि यदि बाद में जीसीसी पर तर्क का उपयोग करने की आवश्यकता है तो यह UNUSED() विशेषता को हटाए बिना ऐसा नहीं होने देगा। – ideasman42