Rumah >pembangunan bahagian belakang >C++ >Adakah Semua Penunjuk Saiz Sama dalam C ?
Adakah Semua Penunjuk Mempunyai Saiz yang Sama dalam C ?
Timbul persoalan sama ada semua penunjuk dalam C berkongsi saiz yang seragam. Walaupun ia sering diandaikan, piawaian C memberikan pandangan muktamad tentang perkara ini.
Spesifikasi Standard C
Piawaian C secara jelas menjamin:
Pertimbangan Praktikal
Dalam amalan, penunjuk kepada jenis kelas biasanya mengekalkan saiz yang sama. Ini disebabkan oleh keperluan bahawa pengkompil mesti menentukan saiz T* tanpa mentakrifkan sepenuhnya T. Walaupun pengkompil mempunyai sedikit fleksibiliti dalam saiz penunjuk, ini jarang digunakan dalam senario dunia sebenar.
Selain itu, penunjuk fungsi , penunjuk kepada ahli data, dan penunjuk kepada ahli fungsi biasanya mempunyai saiz yang sama. Ini membolehkan pentafsiran_pemutus semula yang lancar antara jenis penuding ini.
Pengecualian
Satu pengecualian ketara berlaku dalam seni bina bersegmen, di mana penunjuk dekat dan jauh mungkin berbeza dari segi saiz. Kes ini melanggar peraturan biasa untuk keseragaman saiz penunjuk.
Kesimpulan
Piawaian C menjelaskan bahawa penunjuk void* dan cv-qualified mempunyai saiz seragam. Walaupun penunjuk kepada jenis yang berbeza biasanya mewarisi saiz yang sama, pertimbangan praktikal mencadangkan bahawa penunjuk kepada jenis kelas, penunjuk fungsi dan penunjuk kepada ahli data semuanya berkongsi saiz bersatu. Walau bagaimanapun, seni bina bersegmen memberikan pengecualian, dengan penunjuk dekat dan jauh berpotensi mempunyai saiz yang berbeza.
Atas ialah kandungan terperinci Adakah Semua Penunjuk Saiz Sama dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!