Rumah >pembangunan bahagian belakang >C++ >Bolehkah memcpy Digunakan untuk Membina Objek Trivial-Copyable dalam C ?
Membina Objek Trivial-Copyable dengan memcpy
Apabila bekerja dengan C , pembangun mungkin menghadapi soalan mengenai kesahihan penggunaan memcpy untuk menyalin bait perwakilan sesuatu objek. Secara khususnya, keraguan timbul sama ada akta ini membentuk pembinaan objek atau tugasan.
Soalan ini masih belum dapat diselesaikan, kerana piawaian C tidak menangani senario ini secara eksplisit. Walau bagaimanapun, cadangan dan perbincangan tertentu memberikan panduan mengenai perkara itu.
Perspektif Standard Rasmi
Piawaian draf C 14 semasa menyatakan bahawa: "Suatu objek dicipta [.. .] dengan definisi, dengan ungkapan baharu atau dengan pelaksanaan apabila diperlukan."
Selain itu, klausa sedia ada yang menangani penyalinan jenis boleh salin remeh (cth., 3.9 [basic.types]) terutamanya memfokuskan pada penyalinan antara objek yang telah dibuat seketika.
Cadangan p0593
Cadangan p0593 cuba menangani isu ini dan mentakrifkan penciptaan objek tersirat untuk manipulasi objek peringkat rendah. Ia mencadangkan agar objek jenis yang cukup remeh dibuat secara automatik dalam storan yang baru diperuntukkan, memastikan gelagat yang jelas.
Menurut p0593, operasi berikut harus secara tersirat mencipta objek:
Pertimbangan Lain
Perbincangan tentang [ub] Type punning untuk mengelakkan penyalinan menyerlahkan lagi kerumitan topik ini.
Secara keseluruhan, panduan semasa mengenai subjek ini terbuka kepada tafsiran, tetapi cadangan seperti p0593 bertujuan untuk memberikan kejelasan dan tingkah laku yang jelas untuk operasi ini.
Atas ialah kandungan terperinci Bolehkah memcpy Digunakan untuk Membina Objek Trivial-Copyable dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!