Rumah >pembangunan bahagian belakang >C++ >Adakah Rekursi menjadi `main()` Dibenarkan dalam 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!