Rumah >pembangunan bahagian belakang >C++ >Mengapakah Menentukan Parameter Lalai dalam Pengisytiharan Fungsi Diutamakan dalam C?
Soalan: Dalam C , terdapat dua cara untuk mentakrifkan fungsi dengan parameter lalai. Kaedah yang manakah diutamakan dan mengapa?
Respons:
Dalam C , parameter lalai boleh ditentukan sama ada dalam pengisytiharan atau definisi fungsi. Walaupun kedua-dua kaedah berfungsi secara sintaksis, pendekatan pilihan adalah untuk menentukan parameter lalai dalam pengisytiharan itu sendiri.
Keutamaan ini berpunca daripada isu kompilasi yang berpotensi apabila pengisytiharan dan definisi dipisahkan merentas berbilang fail. Pertimbangkan contoh berikut:
lib.h (Fail Pengepala)
<code class="cpp">int Add(int a, int b);</code>
lib.cpp (Fail Sumber)
<code class="cpp">int Add(int a, int b = 3) { // Function implementation }</code>
test.cpp (Fail Ujian)
<code class="cpp">#include "lib.h" int main() { Add(4); }</code>
Menyusun test.cpp akan mengakibatkan ralat kerana pengisytiharan dalam lib.h tidak menyatakan nilai parameter lalai . Ini kerana pengkompil hanya melihat pengisytiharan semasa menyusun test.cpp, dan bukan definisi dalam lib.cpp.
Oleh itu, adalah dinasihatkan untuk sentiasa menentukan parameter lalai dalam pengisytiharan fungsi, seperti dalam yang berikut:
lib.h
<code class="cpp">int Add(int a, int b = 3);</code>
Dengan menyatakan parameter lalai dalam pengisytiharan, pengkompil menyedari kehadirannya walaupun definisi fungsi tidak tersedia, menghalang penyusunan kesilapan.
Atas ialah kandungan terperinci Mengapakah Menentukan Parameter Lalai dalam Pengisytiharan Fungsi Diutamakan dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!