Rumah > pembangunan bahagian belakang > C++ > Bolehkah Fungsi `utama` C Dipanggil Secara Rekursif?

Bolehkah Fungsi `utama` C Dipanggil Secara Rekursif?

Susan Sarandon
Lepaskan: 2024-12-18 14:35:10
asal
626 orang telah melayarinya

Can C  's `main` Function Be Called Recursively?

Bolehkah Fungsi Utama Rekursif Digunakan dalam C ?

Coretan kod yang disediakan dalam soalan menimbulkan kebimbangan mengenai kesahihan panggilan rekursif ke fungsi utama dalam C .

int main () {
    return main();
}
Salin selepas log masuk

Walaupun pengkompil boleh menerima kod tanpa ralat, kelakuannya adalah tidak pasti dan berpotensi tidak ditentukan.

Menurut piawaian C, fungsi utama tidak boleh dipanggil dengan ungkapan. Peraturan ini menunjukkan bahawa panggilan terus ke utama, serta panggilan melalui pengalihan penunjuk atau alamat fungsi, adalah dilarang.

Walaupun larangan ini, sesetengah penyusun mungkin membenarkan panggilan tersebut ke utama. Walau bagaimanapun, tingkah laku ini tidak dijamin dan boleh berbeza-beza antara persekitaran yang berbeza.

Akibat memanggil utama dalam dirinya sendiri tidak ditentukan. Program ini mungkin memasuki gelung tak terhingga, ditamatkan secara tidak dijangka, atau mempamerkan hasil yang tidak dapat diramalkan. Memanggil utama juga boleh membawa kepada isu apabila cuba menyahpepijat atau memprofilkan program.

Kesimpulannya, panggilan rekursif ke utama dalam C tidak disokong oleh standard dan harus dielakkan. Percubaan untuk menggunakan panggilan sedemikian boleh mengakibatkan tingkah laku yang tidak ditentukan dan pelaksanaan program yang tidak boleh dipercayai.

Atas ialah kandungan terperinci Bolehkah Fungsi `utama` C Dipanggil Secara Rekursif?. 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