星期三, 4月 10, 2013
[程式筆記] switch & case 使用注意事項
寫過C語言的人都知道switch & case。
其中使用上有一點點小地方要注意,
假設有一段程式碼如下:
switch(flag)
{
case 1:
switch(i2c_buf[0])
{
case 0x00:
rcv_ptr = PonString00A;
INTO=1;
break;
case 0x18:
rcv_ptr = PonString18A;
INTO=1;
break;
}
case 0:
switch(i2c_buf[0])
{
case 0xA6:
rcv_ptr = PonStringA6;
break;
case 0x00:
rcv_ptr = PonString00;
break;
case 0x18:
rcv_ptr = PonString18;
break;
}
default:
notLoad_rcv_ptr =1;
break;
}
這邊使用兩層switch& case來進行條件選擇,
但如果switch(flag)中的flag定義為bit,意即一開始宣告flag如下:
bit flag;
則會使switch在判別flag內容出現error。
也就是說,switch在判斷其需要判斷的變數時,
該變數不可為布林( boolean)變數(無法判斷真假關係)。
但如果改成以下:
unsigned char flag;
或者是
int flag;
等等之類的就可以進行switch判斷了!
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言