3 回答

TA貢獻1773條經驗 獲得超3個贊
這是我用于C ++代碼的一組額外的偏執標志:
-g -O -Wall -Weffc++ -pedantic \
-pedantic-errors -Wextra -Waggregate-return -Wcast-align \
-Wcast-qual -Wchar-subscripts -Wcomment -Wconversion \
-Wdisabled-optimization \
-Werror -Wfloat-equal -Wformat -Wformat=2 \
-Wformat-nonliteral -Wformat-security \
-Wformat-y2k \
-Wimplicit -Wimport -Winit-self -Winline \
-Winvalid-pch \
-Wunsafe-loop-optimizations -Wlong-long -Wmissing-braces \
-Wmissing-field-initializers -Wmissing-format-attribute \
-Wmissing-include-dirs -Wmissing-noreturn \
-Wpacked -Wpadded -Wparentheses -Wpointer-arith \
-Wredundant-decls -Wreturn-type \
-Wsequence-point -Wshadow -Wsign-compare -Wstack-protector \
-Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch -Wswitch-default \
-Wswitch-enum -Wtrigraphs -Wuninitialized \
-Wunknown-pragmas -Wunreachable-code -Wunused \
-Wunused-function -Wunused-label -Wunused-parameter \
-Wunused-value -Wunused-variable -Wvariadic-macros \
-Wvolatile-register-var -Wwrite-strings
那應該給你一些入門的知識。根據項目的不同,您可能需要將其調低以免看到來自第三方庫的警告(通常對于免于警告的警告是很粗心的。)例如,Boost向量/矩陣代碼會使g ++發出很多的噪音。
處理這種情況的一種更好的方法是在g ++周圍編寫包裝程序,該包裝程序仍然使用已調整到最大警告的警告,但允許禁止顯示特定文件/行號的警告。我很久以前就寫過這樣的工具,一旦有時間清理它就會發布它。

TA貢獻1842條經驗 獲得超22個贊
我相信VC也支持
#pragma message ("note to self")
但是隨著系統的發展和壯大,您需要每晚進行構建,同時有30位開發人員在工作,因此花數天時間才能閱讀完所有筆記,甚至在閱讀筆記并最終在無法跟上壓力并不得不辭職的壓力下休息...
確實沒有,如果允許的話,警告的數量會迅速增加,并且您將無法發現真正重要的警告(未初始化的變量,此指針在構造函數中使用,...)。
這就是為什么我嘗試將警告視為錯誤:大多數情況下,編譯器正確地警告我,如果不是,我將其記錄在代碼中并添加前綴
#pragma warning ( push )
#pragma warning ( 4191 : disable )
// violent code, properly documented
#pragma warning ( pop )
我剛剛讀到它們也有warning ( N : suppress )實用性。
- 3 回答
- 0 關注
- 1140 瀏覽
添加回答
舉報