Rumah >pembangunan bahagian belakang >C++ >Mengapakah Bekas Standard C Lazimnya Melarang Jenis Tidak Lengkap?
Rasional Di Sebalik Bekas C Melarang Jenis Tidak Lengkap
Dalam dunia pengaturcaraan C, bekas ialah struktur data penting untuk mengatur dan memanipulasi data. Walau bagaimanapun, satu ciri khas bekas C ialah keengganan mereka terhadap jenis yang tidak lengkap. Mengapa demikian?
Jawapannya terletak pada evolusi sejarah C . Pada hari-hari awal, pelaksanaan Perpustakaan Templat Standard (STL) bergelut untuk mengendalikan bekas dengan jenis yang tidak lengkap. Untuk mengekalkan kestabilan dan keserasian ke belakang, jawatankuasa penyeragaman membuat keputusan untuk mengharamkan terus bekas sedemikian dalam piawaian C.
Sekatan ini amat berkesan dalam menghalang struktur data rekursif. Ia juga memastikan bahawa pelaksanaan STL sedia ada boleh terus berfungsi seperti yang diharapkan tanpa memperkenalkan sebarang isu yang tidak diduga.
Walau bagaimanapun, larangan ke atas jenis yang tidak lengkap turut mengundang kritikan. Ia mengehadkan pelaksanaan struktur data lanjutan tertentu dan akan mendapat manfaat daripada semakan semula dalam semakan semula piawai C pada masa hadapan.
Walaupun bekas standard kekal tidak lengkap, pereka perpustakaan seperti mereka yang berada di belakang boost::container telah mengambil inisiatif untuk mencipta bekas mereka sendiri yang tidak mengenakan sekatan ini. Keputusan ini membolehkan lebih fleksibiliti dan fleksibiliti dalam pengaturcaraan C.
Kemas kini:
Dengan kemunculan C 17, bekas tertentu dalam Perpustakaan Standard C telah dipinda kepada benarkan jenis yang tidak lengkap. Walau bagaimanapun, ini bukan perubahan sejagat, dan larangan am kekal digunakan untuk kebanyakan bekas dalam standard.
Atas ialah kandungan terperinci Mengapakah Bekas Standard C Lazimnya Melarang Jenis Tidak Lengkap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!