Pengisytiharan Hadapan Enum dalam C
Enum menyediakan cara yang mudah untuk mewakili pemalar bernama dalam C . Walau bagaimanapun, seperti yang ditunjukkan dalam siasatan, cuba mengisytiharkan ke hadapan enum, seperti yang ditunjukkan dalam kod contoh, menghasilkan ralat pengkompil. Tingkah laku ini berpunca daripada versi awal C (sebelum C 11).
Dalam C 03 dan lebih awal, saiz penghitungan ditentukan oleh kandungannya. Pengisytiharan ke hadapan adalah dilarang kerana pergantungan ini, kerana pengkompil tidak dapat menentukan saiz enum tanpa mengetahui elemennya.
Walau bagaimanapun, dengan pengenalan C 11, had ini telah ditarik balik. Enum kini boleh diisytiharkan ke hadapan selagi saiznya dinyatakan dengan jelas. Seperti yang dijelaskan dalam respons, spesifikasi ini boleh dicapai dengan menambahkan penentu jenis pada pengisytiharan enum:
Contohnya:
enum Enum1 : unsigned int; // Forward declaration with an unsigned int size
Pengisytiharan hadapan ini menunjukkan bahawa enum Enum1 akan mempunyai jenis asas int yang tidak ditandatangani, membenarkan ia digunakan dalam pengisytiharan masa hadapan.
Ciri ini membolehkan kawalan yang lebih baik ke atas keterlihatan nilai enum, seperti yang ditunjukkan dalam siasatan. Dengan mengisytiharkan hadapan enum dalam fail pengepala dan mentakrifkannya secara dalaman dalam fail .cpp, pembangun boleh menyembunyikan nilai khusus enum daripada pengguna luaran.
Atas ialah kandungan terperinci Bolehkah C Enums Diisytiharkan Ke Hadapan, dan Jika Ya, Bagaimana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!