C語言關鍵字淺析-default
阿新 • • 發佈:2018-11-23
### C語言關鍵字淺析系列 ###
### ISO/ANSI C 關鍵字 ###
default關鍵字用在switch分支語句中
一般與case搭配使用,含義是預設的其他條件
default的作用是:
標記switch語句中的預設情況下的程式開始位置。
這是switch語句常見的結構:
switch(c) { case 1: c++; /* 數值為1時,增加1 */ break; case 2: c += 2; /* 數值為2時,增加2 */ break; default: c--; /* 否則自減 */ }
顯然,這個語句的執行過程應該是,對引數c與每個case後的值進行逐一比較,如果沒有匹配值,則跳到default
當然如果該switch中沒有default,而且也沒有與case匹配成功,那程式將往下繼續執行
不過此處應該再考慮這麼一個問題,default與break的配合,以及如果default沒有處於末尾
即這種情況:
switch(c)
{
default:
c--; /* default前置了 */
case 1:
c++; /* case順序不變 */
break;
case 2:
c += 2;
break;
}
這樣寫有個潛在的bug,就是default後並沒有break,可能是default常年寫在末尾的後遺症
其bug在於,如果引數非1和2,引數本應減一但由於程式從default開始,後面還有case且default的處理後沒有break
那麼程式將繼續往下執行直到結束或break,本例中將會減一後加一
——參考《C Primer Plus第五版》
相關文章:
C語言關鍵字淺析-switch
C語言關鍵字淺析-case