看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) GCC 4.8.2 or VC 2013 express 問題(Question): 新手請問,程式中因為擔心整數除法的錯誤, 舉例如 X / 0 INT_MIN / -1 然後會在 source code 加程式碼保護 or 確認 但難免有漏網之魚,請問是否有編譯器選項或其他工具能幫忙偵測 自己忘記加保護機制的 code 呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.110.244.218 ※ 編輯: applecool 來自: 123.110.244.218 (11/23 09:30)
diabloevagto:你runtime輸入根本測不出來,要自己error handle 11/23 10:11
我覺得還是能編譯期幫忙檢查
damody:用 lint 之類的要錢的東西去測。 11/23 11:13
damody:搜尋所有 "/" 人工check 11/23 11:14
xpride:樓上不是開玩笑的吧?? 你知道 // 跟 /**/ 有多少嗎? 11/23 12:53
damody:我錯了,那改搜尋 " / " 吧 11/23 13:12
CaptainH:想請問 INT_MIN / 1 會有什麼問題? 11/23 13:50
CaptainH:只記得除以-1會有問題... 11/23 13:51
多謝提醒 ※ 編輯: applecool 來自: 123.110.244.218 (11/23 14:30)
rephansu:vc2010遇到 /0 會提示, INT_MIN/-1就不會 11/24 08:41
rephansu:但runtime遇到時會出exception 11/24 08:42
rephansu:大多數情況都是遇到runtime時的錯誤 11/24 08:49
rephansu:所以都會對function 的input進行檢查, 有錯就停止程式 11/24 08:54
rephansu:另外,你的問題或許用coverity可以檢查出來!? 11/24 08:55
applecool:多謝多謝! 12/07 15:37