Dalam C dan C , menetapkan tatasusunan secara langsung tidak disokong. Walau bagaimanapun, satu pengecualian yang ketara ialah penugasan tatasusunan secara ahli dalam struktur. Ini menimbulkan persoalan: mengapa pengecualian ini wujud?
Evolusi tatasusunan dalam C menyediakan konteks untuk memahami tingkah laku ini. Pada mulanya, dalam bahasa seperti B dan BCPL, tatasusunan pada dasarnya adalah penunjuk, bukan jenis data yang berbeza. Ini memberikan cabaran apabila memasukkan tatasusunan ke dalam definisi struktur dalam C.
Untuk menangani perkara ini, pengkompil telah diubah suai untuk mengendalikan tatasusunan secara tersirat dalam struktur. Tatasusunan telah dijejaki secara dalaman tanpa memerlukan penunjuk yang jelas. Ini membenarkan penyepaduan lancar tatasusunan ke dalam struktur tanpa peruntukan memori masa jalan.
Walau bagaimanapun, konsep berasaskan penunjuk asal masih mempengaruhi perlakuan tatasusunan dalam C. Konsep "tatasusunan menukar kepada penunjuk", di mana mengakses indeks tatasusunan secara berkesan merujuk penuding, kekal di tempat atas sebab keserasian.
Walaupun larangan umum pada penugasan tatasusunan, tugasan ahli dalam struktur muncul sebagai kes khas. Tugasan struktur, yang diperkenalkan dalam semakan C kemudian, ditakrifkan sebagai operasi memcpy yang menyalin memori mentah struct.
Memandangkan tatasusunan disimpan bersebelahan dalam struktur, operasi memcpy ini melaksanakan salinan mengikut elemen dengan berkesan daripada tatasusunan. Oleh itu, dengan memberikan satu struktur kepada struktur yang lain, tatasusunan di dalamnya juga disalin secara tersirat.
Dalam erti kata yang lebih luas, sokongan untuk penugasan tatasusunan ahli dalam struct adalah cerminan fleksibiliti dan kebolehsuaian C dan C . Bahasa ini membolehkan untuk melanjutkan jenis data dengan struktur yang ditentukan pengguna dan binaan kompleks.
Walaupun tugasan tatasusunan umum memerlukan sintaks yang jelas, menggunakan mekanisme penetapan struktur untuk tatasusunan dalam struktur menyediakan pendekatan yang konsisten dan intuitif yang ' t memperkenalkan sintaks yang tidak perlu atau kerumitan pelaksanaan.
Atas ialah kandungan terperinci Mengapa Tugasan Tatasusunan Memberwise Berfungsi dalam Struktur C dan C Tetapi Tidak untuk Tatasusunan Secara umumnya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!