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

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

Patricia Arquette
Lepaskan: 2024-11-28 19:16:15
asal
243 orang telah melayarinya

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();
}
Salin selepas log masuk

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