Enigma Di Sebalik Saiz Bukan Sifar Kelas C Kosong
Dalam C , tanggapan bahawa kelas kosong tidak akan mempunyai memori mungkin kelihatan intuitif. Walau bagaimanapun, andaian ini dicabar oleh tingkah laku pelik di mana walaupun kelas yang tidak mempunyai ahli mempamerkan saiz bukan sifar. Mengapakah paradoks yang jelas ini wujud?
Nampaknya, piawaian C secara jelas melarang objek dan kelas sepadannya daripada mempunyai saiz sifar. Ketetapan ini berpunca daripada keperluan yang wujud untuk membezakan antara objek berbeza yang berpotensi berkongsi ruang memori yang sama.
Standard memastikan perbezaan ini dengan mewajibkan semua kelas, tanpa mengira kandungannya, mesti mempunyai saiz minimum satu. Ini menghalang dua objek yang berbeza daripada mempunyai alamat memori yang sama, kerana keadaan sedemikian akan membawa kepada kelakuan yang tidak dapat diramalkan dan tidak diingini.
Oleh itu, walaupun kelas tidak mempunyai sebarang ahli data yang ditentukan pengguna, ia sememangnya mengandungi butiran pelaksanaan seperti jadual fungsi maya dan ahli penunjuk. Komponen penting ini menyumbang kepada saiz kelas, walaupun tidak dapat dilihat oleh pengguna, sekali gus menyebabkan kelas yang kosong sekalipun untuk menduduki jumlah memori bukan sifar.
Atas ialah kandungan terperinci Mengapa Kelas C Kosong Mempunyai Saiz Bukan Sifar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!