Dalam C , fungsi boleh diisytiharkan dengan parameter lalai, membenarkannya dipanggil tanpa memberikan nilai untuk semua argumen. Walau bagaimanapun, sintaks untuk menentukan parameter lalai boleh berbeza-beza.
Kes 1:
<code class="cpp">int Add(int a, int b = 3); int Add(int a, int b);</code>
Kes 2:
<code class="cpp">int Add(int a, int b); int Add(int a, int b = 3);</code>
Kedua-dua sintaks adalah sah. Walau bagaimanapun, pendekatan standard dan disyorkan ialah Kes 1, di mana parameter lalai ditentukan dalam pengisytiharan fungsi. Ini kerana:
Pertimbangkan senario berikut:
Dalam Kes 1:
Pengkompil akan melihat pengisytiharan parameter lalai dalam fail pengepala semasa penyusunan test.cpp. Ini memastikan bahawa panggilan ke fungsi dalam test.cpp adalah sah, walaupun parameter lalai tidak diberikan secara eksplisit.
Dalam Kes 2:
Pengkompil akan tidak melihat pengisytiharan parameter lalai dalam fail pengepala semasa penyusunan test.cpp, kerana ia hanya ditakrifkan dalam fail pelaksanaan (lib.cpp). Ini akan mengakibatkan ralat kompilasi dalam test.cpp, kerana parameter lalai tidak diisytiharkan.
Oleh itu, menentukan parameter lalai dalam pengisytiharan fungsi (lib.h) ialah cara standard untuk memastikan tingkah laku yang konsisten merentas unit kompilasi yang berbeza.
Atas ialah kandungan terperinci Di manakah parameter lalai harus ditakrifkan dalam C : pengisytiharan atau definisi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!