我非常喜歡在enum-switch-case中跳過「default:」標籤。所以我得到編譯器的警告,當枚舉有一個新的值,而不是交換機處理。沒有默認標籤的Switch-Case中的值無效
現在有個同事說,當將一個整數傳遞給這個沒有被枚舉所涵蓋的開關情況時,我會得到一個分段錯誤。
至少我們正在使用的gcc可以正確處理它。 Visual Studio documentation也是這樣說的:如果「沒有任何常量匹配case標籤中的常量並且不存在默認標籤>>>控制將在switch語句後傳輸到語句中。」
這是標準,因此是所有(或至少最多)編譯器的行爲?
也許你的同事正在考慮案例表後面的代碼。如果它使用配置不正確的資源,那麼該表將以其他方式配置,那麼,是的,沒有默認值可能導致段錯誤。 –