जी के साथ सी संकलनों के लिए विस्तृत और विस्तृत चेतावनी झंडे
जीसीसी संभावित मुद्दों का पता लगाने में डेवलपर्स की सहायता के लिए चेतावनी झंडे का एक व्यापक सेट प्रदान करता है उनका कोड. सी में संपूर्ण और विस्तृत चेतावनियों को सक्षम करने के लिए, निम्नलिखित अनुशंसाओं पर विचार करें:
आवश्यक चेतावनियाँ:
- -pedantic: सख्त का पालन करें सी भाषा मानक।
- -दीवार: आम तौर पर स्वीकृत सभी को सक्रिय करें चेतावनियाँ।
- -वेक्स्ट्रा: चेतावनी के दायरे को -वॉल से आगे बढ़ाएँ।
- -Wcast-Align: गलत संरेखित पॉइंटर कास्ट का पता लगाएं।
- -Wcast-qual: सूचक प्रकार में परिवर्तन के बारे में चेतावनी दें क्वालिफायर।
- -Wctor-dtor-privacy: क्लास कंस्ट्रक्टर और डिस्ट्रक्टर एक्सेस मॉडिफायर के साथ मुद्दों को हाइलाइट करें।
- -Wdisabled-optimization: कोड की पहचान करें इसे अनुकूलित किया जा सकता है लेकिन है नहीं।
- -Wformat=2: संकलन के दौरान प्रारूप विनिर्देशक हैंडलिंग में सुधार करें।
- -Winit-self: वेरिएबल्स को स्वयं में पुन: प्रारंभ होने से रोकें .
- -Wological-op: संभावित ऑपरेटर प्राथमिकता का पता लगाएं मुद्दे।
- -Wmissing-declarations: चर और कार्यों की लापता घोषणाओं के बारे में चेतावनी दें।
- -Wmissing-include-dirs: गायब हाइलाइट में निर्देशिकाएं शामिल हैं .
- -Wnoexcept: अपवाद को प्रोत्साहित करें हैंडलिंग तंत्र।
- -Wold-style-cast: संभावित कोड संगतता समस्याओं की पहचान करें।
- -Woverloaded-virtual: वर्चुअल विधि ओवरलोड के बारे में चेतावनी दें .
- -Wredundant-decls: अनावश्यक इंगित करें घोषणाएँ।
- -Wshadow: वेरिएबल्स की अनजाने में छायांकन को रोकें।
- -Wsign-conversion: संभावित साइन-रूपांतरण त्रुटियों का पता लगाएं।
- -Wsign-promo: संभावित साइन-प्रमोशन को हाइलाइट करें मुद्दे।
- -Wstrict-null-sentinel: शून्य प्रहरी मानों को नियंत्रित करके कोड सुरक्षा बढ़ाएँ।
- -Wstrict-overflow=5: सीमा पूर्णांक अतिप्रवाह का स्तर पाँच तक चेतावनियाँ।
- -Wswitch-default: व्यापक स्विच स्टेटमेंट हैंडलिंग सुनिश्चित करें।
- -Wundef: अपरिभाषित चर या मैक्रोज़ के बारे में चेतावनी दें।
- -Wno-unused: अधिक महत्वपूर्ण पर फोकस बढ़ाने के लिए अप्रयुक्त चर चेतावनियों को बाहर करता है मुद्दे।
वैकल्पिक लेकिन संदिग्ध चेतावनियाँ:
- -Wdisabled-optimization: उप-इष्टतम कोड का संकेत दे सकता है, लेकिन जरूरी नहीं कि एक त्रुटि।
- -Wfloat-equal: संभावित रूप से सुरक्षित समानता तुलनाओं के लिए गलत सकारात्मकता का कारण बनता है।
: त्रुटियों को रोकने के लिए डेटा प्रकारों पर सावधानीपूर्वक ध्यान देने की आवश्यकता है।- -Wsign-promo
: समान विचार जैसे -Wsign-रूपांतरण।- -Wswitch-default
: स्विच स्टेटमेंट मामलों की स्पष्ट हैंडलिंग को लागू करता है लेकिन थकाऊ हो सकता है। बहिष्कृत करने की चेतावनी :- संभावित झूठी सकारात्मकता या सीमितता के कारण ये चेतावनियाँ छोड़ दी गई हैं उपयोगिता:
-वाबी: विविध स्रोतों से बायनेरिज़ के संकलन की आवश्यकता है।
-वैग्रेगेट-रिटर्न
: अंतर्निहित डेटा प्रकार का संकेत दे सकता है रूपांतरण।- -Wरूपांतरण
: हानिरहित अंतर्निहित के लिए चेतावनियां उत्पन्न हो सकती हैं रूपांतरण।- -वेफ़क
: असंबंधित चेतावनियों से भरा जा सकता है।- -विनलाइन
: सभी इनलाइन विधि परिदृश्यों में लागू नहीं हो सकता है।- -Winvalid-pch
: उन परियोजनाओं पर लागू नहीं होता जो उपयोग नहीं करते पूर्व-संकलित हेडर।- -Wmissing-format-attribute
: आमतौर पर उपयोग नहीं किए जाने वाले GNU एक्सटेंशन की आवश्यकता होती है।- -Wpadded
: क्लास लेआउट के मैन्युअल अनुकूलन की आवश्यकता होती है .- -Wstack-प्रोटेक्टर
: स्टैक सुरक्षा के लिए विशिष्ट कंपाइलर झंडे की आवश्यकता है। &&&]: अत्यधिक प्रतिबंधात्मक और सभी उपयोग के लिए उपयुक्त नहीं हो सकता है मामले।- -वुनसेफ-लूप-ऑप्टिमाइज़ेशन
: कुछ परिदृश्यों में नकली चेतावनियाँ उत्पन्न कर सकते हैं।