Menerokai Kesahan Rekursi ke Utama() dalam C
Perdebatan berulang di kalangan pengaturcara ialah kesahihan rekursi ke main() dalam C . Walaupun sesetengah sumber mencadangkan ia dilarang, yang lain menunjukkan tingkah laku yang seolah-olah bercanggah bagi pengkompil yang menerima kod tersebut.
Perspektif Piawaian C
Mengikut piawaian C dalam 3.6. 1/3, rekursi ke main() adalah dilarang secara jelas: "Fungsi utama tidak boleh digunakan dalam program."
Memahami "Digunakan" dalam Konteks Piawaian
Piawaian mentakrifkan "digunakan" sebagai: "Sesuatu objek atau fungsi tanpa beban digunakan jika namanya muncul dalam ungkapan yang berpotensi dinilai."
Dalam kes kod contoh dibentangkan:
int main() { main(); }
Panggilan ke main() muncul dalam kandungan main(), yang merupakan ungkapan yang berpotensi dinilai. Oleh itu, mengikut takrif standard, main() digunakan dalam program, menjadikannya haram.
Kelakuan Penyusun dan Pengecualian Potensi
Walaupun larangan standard, penyusun menyukai g boleh menyusun kod tersebut tanpa ralat. Tingkah laku ini biasanya tidak disyorkan dan tidak boleh dipercayai. Penyusun boleh mengendalikan situasi sedemikian dalam cara yang tidak standard atau khusus pelaksanaan.
Mengelakkan Rekursi ke Utama()
Untuk memastikan pematuhan dengan piawaian C dan mengelakkan potensi isu , adalah sangat dinasihatkan untuk mengelakkan rekursi ke main(). Sebaliknya, pertimbangkan untuk menggunakan corak reka bentuk alternatif atau teknik pengaturcaraan untuk mencapai kefungsian yang diingini tanpa melanggar peraturan bahasa.
Atas ialah kandungan terperinci Adakah Rekursi ke Main() Dibenarkan secara Sah dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!