1. 程式人生 > >C語言關鍵字淺析-default

C語言關鍵字淺析-default

### 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