線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1281
推到 Plurk!
推到 Facebook!

多個 switch 的問題?

答題得分者是:hdilwy
s89205053
一般會員


發表:34
回覆:8
積分:8
註冊:2007-06-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-05-16 10:17:11 IP:60.249.xxx.xxx 訂閱
各位大大好,小弟在寫 多個  switch   case 的程式,若使用兩個 switch時,在c=2 那個程式
居然無Debug點,小弟看了好久,真看不出問題,想請各位大大幫忙一下。謝謝!


[code cpp]
int a=0,b=1,c;
switch(b)
{
case 1 :

switch(a)
{
case 0:
Sleep(1);
break;


case 1:
Sleep(1);
break;
}
break;

case 2:
c=2; //******c=2 處無 Debug 點
break;

}

[/code]
foreman
高階會員


發表:3
回覆:124
積分:190
註冊:2004-09-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-05-16 15:27:55 IP:220.129.xxx.xxx 訂閱
大大:
因您使用int a=0,b=1,c;所以第8和18行被最佳化(省略), 若其它地方會改變 a和 b在我使用單晶片c compile
只要這樣宣告volatile int a=0,b=1,c; 不知BCB是否一樣?
編輯記錄
foreman 重新編輯於 2008-05-16 15:29:30, 註解 無‧
s89205053
一般會員


發表:34
回覆:8
積分:8
註冊:2007-06-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-05-16 15:57:40 IP:60.249.xxx.xxx 訂閱
很感謝這位大大提拱的意見。

但問題仍是一樣。

愈來愈覺的這是 BCB 本身的 bug

哎~傷腦筋哩!
foreman
高階會員


發表:3
回覆:124
積分:190
註冊:2004-09-10

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-05-16 16:42:01 IP:220.129.xxx.xxx 訂閱
大大:
確實是BUG, 我在14 15行間加c=c; 就OK
hdilwy
初階會員


發表:18
回覆:65
積分:41
註冊:2004-08-31

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-06-17 12:33:15 IP:220.130.xxx.xxx 訂閱
那個點永遠不會跑到,所以沒有debug點吧
debug點是建立在可以跑到的地方,由於
b是local變數的關係,在執行c = 2;這行前並沒有
任何動作可以改變他就跟
int i =1,j;
if( i = 2)
{
j=0;
}else
{
j=1;
}
永遠跑不到 j=1這個點
因為if 恆等於true
若是舉例不佳尚請見諒
系統時間:2024-04-20 11:48:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!