Rumah >pembangunan bahagian belakang >C++ >Adakah Penunjuk Sentiasa Mempunyai Saiz Yang Sama dalam C ?
Adakah Semua Penunjuk Mempunyai Saiz Yang Sama dalam C ?
Soalan ini telah menjadi subjek perdebatan, dengan beberapa sumber mendakwa bahawa semua petunjuk mempunyai saiz yang sama manakala yang lain berpendapat bahawa penunjuk boleh berbeza-beza dari segi saiz.
Mengikut piawaian C, secara jelas dijamin bahawa:
Walaupun piawaian tidak menyatakan dengan jelas bahawa semua penunjuk mempunyai saiz yang sama, secara amnya adalah benar bahawa penunjuk kepada semua jenis kelas , penunjuk fungsi, penunjuk ahli data dan penunjuk ahli fungsi mempunyai saiz yang sama.
Walau bagaimanapun, andaian ini tidak dijamin 100%, kerana pengkompil secara teknikal dibenarkan bermain helah. Contohnya, mereka boleh mencipta penunjuk yang lebih panjang untuk kelas yang bermula dengan awalan tertentu atau jika mereka memutuskan untuk melaksanakan kutipan sampah untuk kelas tersebut.
Dalam senario praktikal, kemungkinan besar penyusun akan menggunakan kebebasan ini. Akibatnya, pembangun secara amnya boleh menganggap bahawa penunjuk kepada jenis kelas yang berbeza dan jenis lain yang dinyatakan di atas akan mempunyai saiz yang sama. Untuk memberikan jaminan lanjut, pernyataan static_assert boleh dilaksanakan untuk menandakan kemungkinan pelanggaran.
Walau bagaimanapun, dalam seni bina bersegmen dengan penunjuk dekat dan jauh, ada kemungkinan jenis penunjuk ini mungkin tidak mempunyai saiz yang sama. Ini berfungsi sebagai pengecualian kepada peraturan biasa penunjuk yang mempunyai saiz seragam.
Atas ialah kandungan terperinci Adakah Penunjuk Sentiasa Mempunyai Saiz Yang Sama dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!