防御性編程技巧
擊上方“C語言與CPP編程”,選擇“關注/置頂/星標公眾號”
干貨福利,第一時間送達!

2 不要倉促地編寫代碼
char *unsafe_copy(const char *source){char *buffer = new char[10];strcpy(buffer, source);return buffer;}
char *safer_copy(const char *source){char?*buffer?=?new?char[10];strncpy(buffer,?source,?10);return?buffer;}
大多數(shù)語言都提供了一條switch語句;這些語言都將碰到default case的執(zhí)行情況。如果default case是錯誤的,在代碼中將錯誤情況明示出來。如果一切都正常,也要在代碼中明示順利執(zhí)行的情況,只有這樣維護代碼的程序員才會理解程序的執(zhí)行情況。
這條簡單的建議將確保你的讀者可以明白你所編寫的所有代碼。他們做出的錯誤設想會更少。
即使是最基本的計算,也會使數(shù)值型變量上溢或下溢。對此要非常注意。語言規(guī)范或核心庫提供了一些機制,用來確定各個標準類型的大小——別忘了使用這些機制。確保你了解所有可用的數(shù)值類型,以及每種類型最適合的情況。
C或C++語言的程序員真的應該對常量的設置保持高度警惕,這會讓日子好過很多。盡可能將所有可以設置成常量的都設為常量。這樣做有兩個好處:首先,常量的限制條件可以充當代碼記錄;其次,常量使編譯器可以找到你所犯下的愚蠢錯誤。這樣,你就可以避免修改超出上下限的數(shù)據(jù)了。
轉載:https://blog.csdn.net/everpenny/article/details/6316698
評論
圖片
表情
