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

Adakah Rekursi menjadi `main()` Dibenarkan dalam C ?

Patricia Arquette
Patricia Arquetteasal
2024-11-28 19:16:15139semak imbas

Is Recursion into `main()` Allowed in C  ?

Rekursi ke main() dalam C : Adakah Ia Dibenarkan?

Walaupun tanggapan bahawa C melarang pengulangan ke main(), terdapat adalah contoh di mana kod seperti berikut disusun tanpa ralat menggunakan g :

int main()
{
    main();
}

Ini menimbulkan persoalan: adakah piawaian C membenarkan pengulangan sedemikian?

Jawapan:

Piawaian C secara jelas melarang rekursi ke main() dalam bahagian 3.6.1/3, yang menyatakan bahawa " Fungsi utama tidak boleh digunakan dalam program." Dalam konteks ini, "digunakan" merujuk kepada situasi di mana "namanya muncul dalam ungkapan yang berpotensi dinilai."

Oleh itu, panggilan rekursif ke main() tidak dibenarkan dalam program C. Keupayaan pengkompil untuk menyusun kod yang disediakan tanpa ralat berkemungkinan disebabkan oleh pengoptimuman khusus pelaksanaannya atau kelemahan dalam tafsirannya terhadap standard. Walau bagaimanapun, adalah tidak disyorkan untuk bergantung pada tingkah laku sedemikian kerana ia bertentangan dengan larangan yang jelas dalam spesifikasi bahasa.

Atas ialah kandungan terperinci Adakah Rekursi menjadi `main()` Dibenarkan dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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