Rumah > pembangunan bahagian belakang > C++ > Apa yang Berlaku Apabila Fungsi C Kurang Nilai Pulangan?

Apa yang Berlaku Apabila Fungsi C Kurang Nilai Pulangan?

DDD
Lepaskan: 2024-11-15 00:32:02
asal
196 orang telah melayarinya

What Happens When a C   Function Lacks a Return Value?

Fungsi dengan Nilai Pulangan Hilang: Penerokaan Gelagat Masa Jalan

Ketiadaan penyataan pulangan dalam fungsi bukan batal menimbulkan kebimbangan tentang tingkah laku program pada masa larian. VisualStudio 2008 dengan tepat memberi amaran tentang nilai pulangan yang hilang dalam kod berikut:

int doSomethingWith(int value)
{
    int returnValue = 3;
    bool condition = false;

    if(condition)
        // returnValue += value; // DOH

    return returnValue;
}

int main(int argc, char* argv[])
{
    int foo = 10;
    int result = doSomethingWith(foo);
    return 0;
}
Salin selepas log masuk

Walaupun diberi amaran, atur cara menyusun dan berjalan. Walau bagaimanapun, nilai pulangan bagi fungsi 'doSomethingWith' bukanlah seperti yang dijangkakan.

Adakah Gelagat Tidak Ditakrifkan?

Sebagai standard ISO C (bahagian 6.6. 3) menyatakan:

"Mengalir dari hujung fungsi adalah bersamaan dengan pulangan tanpa nilai; ini mengakibatkan tingkah laku yang tidak ditentukan dalam fungsi mengembalikan nilai."

Ini bermakna bahawa tingkah laku program tidak dapat diramalkan. Dalam contoh khusus ini, nilai pulangan ditetapkan kepada 0.

Bagaimanakah Nilai Hasil Dikira?

Apabila fungsi tidak mengembalikan nilai secara eksplisit, pengkompil cuba menentukan jenis pulangan berdasarkan konteks. Dalam kes ini, memandangkan fungsi diisytiharkan untuk mengembalikan 'int', pengkompil memulakan nilai pulangan kepada 0.

Apakah yang Berlaku dengan Jenis Data Bukan POD?

Kelakuan fungsi dengan nilai pulangan yang hilang untuk jenis data bukan POD adalah lebih tidak dapat diramalkan. Tanpa permulaan yang jelas, pengkompil tidak boleh menganggap nilai lalai dan nilai pulangan mungkin akan menjadi data sampah.

Kesimpulan

Sementara atur cara dalam contoh yang disediakan mungkin berjalan tanpa isu yang ketara, bergantung pada tingkah laku yang tidak ditentukan tidak sekali-kali digalakkan. Ia boleh membawa kepada masalah halus dan sukar dinyahpepijat. Sentiasa pastikan setiap fungsi bukan batal mempunyai pernyataan pulangan eksplisit yang menetapkan nilai pulangan yang sesuai.

Atas ialah kandungan terperinci Apa yang Berlaku Apabila Fungsi C Kurang Nilai Pulangan?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan