[爆卦]while迴圈跳出是什麼?優點缺點精華區懶人包

為什麼這篇while迴圈跳出鄉民發文收入到精華區:因為在while迴圈跳出這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者andy2007 (...)看板C_and_CPP標題[問題] 無限迴圈逾時跳出時間Mon Oc...


開發平台(Platform): (Ex: VC++, GCC, Linux, ...)

Dev-C++ 4.9.9.2 (測試用)

問題(Question):


各位前輩好,我在以下的程式碼呼叫了一個無窮迴圈的函數,回傳值型態為int

我想在主程式下的while迴圈中判斷「逾時」了,則自動跳出這個無窮迴圈

那該怎麼實作呢?(以下程式碼有更詳細說明)


程式碼(Code):(請善用置底文網頁, 記得排版)


int main(void)
{

int b = 0;

while( b=infinity() ){

//因為b=infinity()沒辦法傳值回來,所以進不去此while迴圈

//請問有辦法在一定的時間內跳出b=infinity()這個敘述嗎?

//或者有紅色while迴圈在一定的時間內沒執行,就自動跳出的方法?

}

return 0;
}

int infinity(void){

int a = 1;
while(1);
return a;
}

補充說明(Supplement):

我實際上是在做IO的控制,當IO沒有回應一段時間後

我就得跳出這個敘述,然後顯示逾時的訊息

我沒有使用計時器,請問各位前輩有其他的方法嗎?


初學C語言,感謝各位前輩們指點~ :)

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.214.89
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1414417267.A.C5C.html
※ 編輯: andy2007 (140.114.214.89), 10/27/2014 21:51:07
CaptainH: thread 10/27 22:11
LPH66: 「沒有回應一段時間」→所以你基本上還是需要計時器 10/27 22:11
LPH66: 不管是 busy loop 還是 thread 都是一樣 10/27 22:11
andy2007: 謝謝前輩們的回應,如果不使用計時器,就必須一直等IO回 10/27 22:21
andy2007: 應後才能繼續動作 10/27 22:22
yoco: thread 10/28 06:42
andy13579372: select()有timeout win和linux都有api 10/28 09:26

你可能也想看看

搜尋相關網站