Rumah > pembangunan bahagian belakang > C++ > Adakah Rekursi menjadi fungsi main() Dibenarkan dalam C?

Adakah Rekursi menjadi fungsi main() Dibenarkan dalam C?

Linda Hamilton
Lepaskan: 2024-11-16 09:09:02
asal
229 orang telah melayarinya

Is Recursion into main() Function Allowed in C  ?

Rekursi ke Utama() dalam C : Legaliti dan Pertimbangan Standard

Dalam bidang pengaturcaraan C, tingkah laku rekursi menjadi utama () fungsi telah mencetuskan beberapa perdebatan. Walaupun beberapa sumber mencadangkan bahawa ia dilarang, pengkompil g nampaknya membenarkan pengulangan sedemikian tanpa menimbulkan sebarang ralat. Artikel ini bertujuan untuk menyelidiki piawaian C dan menjelaskan kesahihan amalan ini.

Larangan Piawaian Rekursi ke Utama()

Mengikut piawaian C dalam seksyen 3.6.1/3, pengulangan ke main() adalah dilarang secara jelas. Peruntukan ini menyatakan bahawa "Fungsi utama tidak boleh digunakan dalam atur cara."

Takrifan "Digunakan" dalam Standard

Dalam konteks standard, "digunakan" merujuk kepada objek atau fungsi tanpa beban yang namanya muncul dalam ungkapan yang berpotensi dinilai. Memandangkan main() ialah titik masuk untuk mana-mana atur cara C, seruannya dalam ungkapan atau pernyataan membentuk penggunaannya.

Gelagat G Terhadap Rekursi ke Utama()

Walaupun larangan standard, g membenarkan penyusunan kod yang berulang ke main(). Tingkah laku ini mungkin dikaitkan dengan tafsiran standard pelaksanaan pengkompil yang khusus dan tidak mematuhi.

Implikasi dan Akibat

Panggilan secara rekursif main() boleh mendatangkan akibat yang tidak dapat diramalkan dalam C . Pengkompil mungkin menamatkan atur cara dengan ralat, atau ia mungkin membawa kepada tingkah laku yang tidak ditentukan, seperti limpahan tindanan atau rekursi tak terhingga.

Amalan Disyorkan

Untuk memastikan pematuhan kepada piawaian C dan elakkan isu yang berpotensi, adalah sangat disyorkan untuk mengelak daripada mengulangi fungsi utama(). Sebaliknya, pertimbangkan untuk menggunakan teknik seperti gelung atau rekursi dengan fungsi pembantu untuk mencapai kefungsian yang diingini.

Atas ialah kandungan terperinci Adakah Rekursi menjadi fungsi main() Dibenarkan dalam C?. 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