Dalam C , terdapat garis panduan khusus untuk menghantar parameter dengan betul untuk mengoptimumkan kecekapan sambil mengekalkan kejelasan dalam kod anda.
Lewati nilai rujukan: Gunakan ini apabila fungsi perlu mengubah suai objek asal yang diluluskan, dengan perubahan dapat dilihat oleh pemanggil.
Lewati rujukan lnilai kepada const: Pilih ini apabila fungsi perlu memerhati keadaan objek tanpa mengubah suai atau mencipta salinan.
Lewati value: Pilih ini apabila fungsi tidak mengubah suai objek asal dan hanya perlu memerhatikannya. Ia lebih disukai untuk jenis asas yang penyalinan pantas.
Untuk rnilai, lulus melalui rujukan nilai: Ini mengelakkan pergerakan atau salinan yang tidak perlu. Gunakan pemajuan yang sempurna untuk mengendalikan kedua-dua nilai dan nilai, memastikan pengikatan yang cekap.
Gunakan lebihan pembina: Tentukan lebihan beban untuk rujukan lnilai dan rujukan nilai. Ini membolehkan pengkompil memilih beban berlebihan yang betul berdasarkan jenis parameter, memastikan tiada salinan atau pemindahan yang tidak diperlukan.
Mari kita lihat semula contoh Kad Kredit dengan mengambil kira garis panduan ini:
Luluskan Kad Kredit mengikut nilai rujukan:
Account(std::string number, float amount, CreditCard&& creditCard): number(number) , amount(amount) , creditCard(std::forward<CreditCard>(creditCard)) {}
Ini memastikan perpindahan daripada rvalue CreditCard yang diluluskan sebagai hujah.
Gunakan lebihan pembina:
Account(std::string number, float amount, const CreditCard& creditCard): number(number) , amount(amount) , creditCard(creditCard) {} Account(std::string number, float amount, CreditCard&& creditCard): number(number) , amount(amount) , creditCard(std::move(creditCard)) {}
Ini membolehkan pengkompil memilih beban berlebihan yang betul, sama ada menyalin daripada nilai atau berpindah dari rvalue.
Dengan menggunakan garis panduan ini, anda boleh mengoptimumkan penghantaran parameter dalam C , mengekalkan kejelasan dan kecekapan kod.
Atas ialah kandungan terperinci Bagaimana untuk Mengoptimumkan Hantaran Parameter dalam C : Nilai L, Nilai R dan Amalan Terbaik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!