- Bir enum bir "sabitler adlı toplama" dır örneğin
var
değil tipMyType_e
taşımaktadır Yani enum adı Ne işe yarar halde enum sabitleri için Numara isminin amacı nedir? <code>enum MyType_e {A, B, C};</code></li> <li>olanlar sabitleri numaralandırma dosyası kapsamında beyan edilmiş olması halinde enum yani ana kapsamda bildirilen ve isimsiz olduğunu, bu bir dizi eşdeğerdir:
int
yani int var = A
olduğunu #define A 0
ifadeleri, tamamen yasal mı? EDIT Aşağıdaki yorumlar uyarınca, enumlar hakkındaki anlayışım oldukça hatalı görünüyor. Bir enum'un #define ifadeleriyle ilgisi yoktur.Enums are resolved at compile time, ve yazılmıştır.
Bu fikirleri aldığınız C standardının bölümlerini işaret edebilir misiniz? C ad alan adlarına sahip değil (en azından burada atıfta bulunduğunuzu düşünüyorum) ve enlemelerin her zaman int için altta yatan türü yok. Yoksa bu daha yeni bir C standardından mı? –
@Anonymous: C99 standardının 6.7.2.2/3'ü "Bir numaralayıcı listesindeki tanımlayıcılar" int "..." olan sabitler olarak bildirilir. Bu, daha sonra söylemeye devam ettiği için, bu kafa karıştırıcı bir şeydir, "Her numaralanan tür" char ", imzalı bir tamsayı türü veya işaretsiz bir tamsayı türü ile uyumlu olmalıdır. "Yani sabitlerin kendileri" int ", ama" enum "türünün kendisi olmayabilir. "Ad alanı" ile, Vorac'ın "kapsam" anlamına geldiğini düşünüyorum. – jamesdlin
@jamesdlin, Anonymous: Sorunun daha az hatalı olması için değiştirdim. Enumlar için uygulamaya bağımlı tip benim için bir haber. Oldukça ilginç. – Vorac