हमेशा का उपयोग करें -O
ऊपर या ( -O1
, -O2
,-Os
, आदि)। डिफ़ॉल्ट ऑप्टिमाइज़ेशन स्तर पर, gcc संकलन की गति के लिए जाता है और यह इकाईगत चर जैसी चीजों के बारे में चेतावनी देने के लिए पर्याप्त विश्लेषण नहीं करता है।
बनाने पर विचार करें -Werror
नीति , क्योंकि चेतावनी जो संकलन को रोकती नहीं है उसे नजरअंदाज किया जाता है।
-Wall
बहुत अधिक चेतावनियाँ हैं जो त्रुटियों की संभावना हैं।
चेतावनियों में शामिल -Wextra
सामान्य, वैध कोड को ध्वजांकित करने की प्रवृत्ति हैं। वे कोड समीक्षाओं के लिए उपयोगी हो सकते हैं (हालांकि लिंट-शैली के कार्यक्रम बहुत अधिक लचीले होते हैं) अधिक सामान्य होते हैं, लेकिन मैं उन्हें सामान्य विकास के लिए चालू नहीं करूंगा।
-Wfloat-equal
एक अच्छा विचार है अगर परियोजना पर डेवलपर्स फ्लोटिंग पॉइंट से अपरिचित हैं, और यदि वे हैं तो एक बुरा विचार।
-Winit-self
उपयोगी है; मुझे आश्चर्य है कि इसमें शामिल क्यों नहीं है-Wuninitialized
।
-Wpointer-arith
यदि आपके पास ज्यादातर पोर्टेबल कोड है जो आपके साथ काम नहीं करता है तो उपयोगी है -pedantic
।
-save-temps
,-Wshadow
और-fmudflap
सबसे बड़े थे जो मुझे पता नहीं था, सभी के लिए धन्यवाद।