Melalui Penunjuk Dikongsi: Mengikut Rujukan atau Mengikut Nilai
Apabila menggunakan fungsi yang menerima penuding dikongsi, pembangun menghadapi pilihan antara melewati rujukan const atau mengikut nilai. Walaupun melalui rujukan const mungkin kelihatan lebih baik atas sebab prestasi, keputusan itu memerlukan pertimbangan selanjutnya.
Menurut pakar pada sesi 2011 C dan Beyond "Ask Us Anything", secara amnya tiada kelebihan untuk lulus penunjuk dikongsi mengikut nilai. Melewati rujukan const ialah pendekatan yang disyorkan melainkan niatnya adalah untuk berkongsi pemilikan objek.
Mengapa Lulus Rujukan Const?
Melalui rujukan const memastikan bahawa penunjuk yang dikongsi kekal tidak berubah dalam fungsi, mengekalkan nilainya dan menghalang pengubahsuaian yang tidak diingini. Ini sejajar dengan gelagat yang dimaksudkan oleh penuding dikongsi, yang melambangkan pemilikan bersama objek.
Mengapa Tidak Lulus Nilai?
Walaupun melalui nilai boleh mencipta salinan penuding dikongsi, pengkompil C moden mengoptimumkan penduaan yang tidak perlu bagi objek terurus yang mendasarinya. Melepasi nilai hanya menjadi bermanfaat apabila penuding dikongsi boleh dioptimumkan bergerak, membenarkan pemilikan objek terurus dipindahkan ke fungsi tanpa menyalin. Walau bagaimanapun, pengoptimuman ini bergantung pada versi C tertentu yang digunakan.
Pertimbangan Tambahan
Panel 2012 GoingNative "Ask Us Anything" menghuraikan dengan lebih lanjut mengenai topik ini. Pengambilan penting daripada perbincangan termasuk:
Atas ialah kandungan terperinci Patutkah Saya Lulus Penunjuk Dikongsi dengan Rujukan atau Mengikut Nilai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!