首頁 > 後端開發 > C++ > 主體

C/C 中哪一種無限迴圈語法最好:for(;;)、while(1) 或 while(true)?

Linda Hamilton
發布: 2024-11-15 00:39:02
原創
182 人瀏覽過

Which Endless Loop Syntax in C/C   is Best: for(;;), while(1), or while(true)?

C/C 中的無限循環

問題:

存在多種方法來創建C/C 中的無限循環,包括for(;;)、while(1) 和do {}而(1)。是否存在首選形式,現代編譯器是否會優化其中一種形式?

答案:

雖然個人喜好推動了許多關於此主題的討論,但客觀分析揭示了以下:

for( ;;)

  • 規範形式,在Kernighan 和Ritchie的權威《C 程式語言》中引用。
  • 由於 C 標準對 for 迴圈中省略元素的獨特處理而顯得晦澀難懂語法。

while(1)

  • 比for(;;) 更具可讀性,但依賴C 對非零表達式的解釋: true。
  • 可能會觸發編譯器警告(「條件永遠為true")。

while(true)

  • 旨在提高 while(1) 的可讀性。
  • 仍然觸發相同的編譯器警告。
  • 需要使用 stdbool.h 標頭和 bool類型,並非所有平台都支援。

現代編譯器最佳化

現代編譯器將所有這些循環形式識別為無限循環並執行等效的最佳化。它們可能會根據編譯器設定發出警告,但產生的最佳化程式碼是相同的。

結論

最終,無限循環語法的選擇是個人問題偏好。然而,鑑於 for(;;) 得到了廣泛認可,它避免了編譯器警告,並且對於熟悉 C/C 的人來說額外的可讀性工作是多餘的,它仍然是一個合理的選擇。

以上是C/C 中哪一種無限迴圈語法最好:for(;;)、while(1) 或 while(true)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板