## 【我解C語言面試題系列】003 死循環格式問題小結?
**死循環格式問題小結**
下面是幾個"著名"的死循環:
(1)操作系統死循環;
(2)WIN32程序死循環;
(3)嵌入式系統軟件死循環;
(4)多線程程序的線程處理函數死循環。
而有的時候我們在程序中也要使用死循環,只有當條件滿足的時候,才可以break 退出死循環,繼續下面的代碼的執行。死循環的方案有兩個:
~~~
while (1)
{
????? ……
}
for ( ; ; )
{
????? ……
}
~~~
第一種格式往往是我們的首選方案。
第二種格式則由于這個語法沒有確切表達代碼的含義,我們從for ( ; ; ) 看不出什么,只有弄明白for ( ; ; ) 在C語言中意味著無條件循環才明白其意。有的程序員更是把第二種格式寫成了for ( ;1 ; ) ,更是迷惑人。我們不要求所有人的所有代碼格式都統一,但是象這種情況,還是統一一點的比較好,因為這樣讀你代碼的人會更舒服一些,可以增強程序員間的代碼交流。死揪語法,狠鉆牛角尖,代碼寫的亂七八糟,各有各的一套,那對于代碼維護來說是要付出很大代價的。
在C程序中,特別是嵌入式程序中除主程序的死循環外,一般的人都建議不要使用死循環,因為一旦你的代碼稍微出現小的失誤,就會造成當機,這是做嵌入式的人最不愿意看到的,因為QA(質量測試部門)是絕對不允許這種程序通過測試走貨的。但是,在有的時候我們又不可避免的要使用死循環,所以要視具體情況而定。