Rumah > Artikel > pembangunan bahagian belakang > Apa yang Berlaku Apabila Fungsi dengan Jenis Pulangan Tiada Penyata Pulangan?
Fungsi tanpa Nilai Pulangan: Kelakuan Tidak Ditakrifkan dan Akibat Masa Jalan
Apabila fungsi dengan jenis pemulangan tiada penyataan pemulangan, pengkompil menimbulkan amaran , seperti yang ditunjukkan dalam coretan kod yang disediakan. Walau bagaimanapun, gelagat semasa masa jalan dalam situasi sedemikian adalah tidak mudah.
Menurut piawaian ISO C (bahagian 6.6.3), membiarkan fungsi tidak batal tanpa penyataan kembali membentuk gelagat yang tidak ditentukan. Ini bermakna nilai pulangan sebenar dalam kes sedemikian tidak dapat diramalkan dan tidak boleh dipercayai.
Dalam kod yang disediakan, fungsi doSomethingWith tidak mempunyai pernyataan pulangan apabila syarat adalah palsu. Akibatnya, tingkah laku semasa masa jalan tidak ditentukan. Walau bagaimanapun, nampaknya fungsi tersebut mengembalikan nilai 0, yang bukan gelagat yang dimaksudkan.
Adalah penting untuk ambil perhatian bahawa nilai pulangan hanya tidak ditentukan untuk jenis data POD (Data Lama Biasa), seperti int, terapung, dan berganda. Untuk jenis data bukan POD, seperti kelas dan struct, pembina lalai digunakan untuk membina nilai pulangan, yang mungkin tidak mempunyai gelagat yang dimaksudkan.
Implikasi
The tingkah laku yang tidak ditentukan dalam situasi sedemikian boleh membawa kepada keputusan yang tidak dapat diramalkan atau malah ranap program. Oleh itu, adalah penting untuk memastikan semua laluan dalam fungsi dengan jenis pulangan mempunyai nilai pulangan yang sah.
Pengesyoran
Untuk mengelakkan gelagat yang tidak ditentukan, anda disyorkan untuk:
Atas ialah kandungan terperinci Apa yang Berlaku Apabila Fungsi dengan Jenis Pulangan Tiada Penyata Pulangan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!