Rumah > pembangunan bahagian belakang > C++ > Sintaks Gelung Tak Berpenghujung mana dalam C/C yang Terbaik: for(;;), while(1), atau while(true)?

Sintaks Gelung Tak Berpenghujung mana dalam C/C yang Terbaik: for(;;), while(1), atau while(true)?

Linda Hamilton
Lepaskan: 2024-11-15 00:39:02
asal
315 orang telah melayarinya

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

Gelung Tanpa Kesudahan dalam C/C

Soalan:

Pelbagai kaedah wujud untuk mencipta gelung tidak berkesudahan dalam C/C , termasuk untuk(;;), while(1), dan lakukan {} while(1). Adakah terdapat bentuk pilihan dan adakah penyusun moden mengoptimumkan satu daripada yang lain?

Jawapan:

Walaupun pilihan peribadi mendorong banyak perbincangan mengenai topik ini, analisis objektif mendedahkan berikut:

for(;;)

  • Bentuk kanonik, dipetik dalam "Bahasa Pengaturcaraan C" yang berwibawa oleh Kernighan dan Ritchie.
  • Kabur kerana perlakuan unik piawaian C terhadap elemen yang ditinggalkan dalam sintaks gelung for.

sementara(1)

  • Lebih mudah dibaca daripada for(;;), tetapi bergantung pada tafsiran C bagi ungkapan bukan sifar sebagai benar.
  • Boleh mencetuskan amaran pengkompil ("keadaan sentiasa benar").

while(true)

  • Bertujuan untuk meningkatkan kebolehbacaan dari semasa ke semasa(1).
  • Masih mencetuskan amaran pengkompil yang sama.
  • Memerlukan penggunaan pengepala stdbool.h dan jenis bool, yang mungkin tidak disokong pada semua platform.

Pengoptimuman Pengkompil Moden

Penyusun moden mengiktiraf semua bentuk gelung ini sebagai tak terhingga gelung dan melakukan pengoptimuman yang setara. Mereka mungkin mengeluarkan amaran bergantung pada tetapan pengkompil, tetapi kod yang dioptimumkan yang dihasilkan adalah sama.

Kesimpulan

Akhirnya, pilihan sintaks gelung tidak berkesudahan adalah urusan peribadi keutamaan. Walau bagaimanapun, memandangkan pengiktirafan luas untuk(;;), pengelakan amaran pengkompil dan keterlebihan usaha kebolehbacaan tambahan bagi mereka yang biasa dengan C/C , ia kekal sebagai pilihan yang munasabah.

Atas ialah kandungan terperinci Sintaks Gelung Tak Berpenghujung mana dalam C/C yang Terbaik: for(;;), while(1), atau while(true)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan