, bir derenin boyutudur, her zaman farklı derleyiciler arasında aynıdır (gcc, visual c ve diğerleri?). Yani, belirli bir enum'un sizeof() değeri C/C++ standartlarını takip eden her derleyici ile aynı değerleri verir mi?Farklı derleyicilerdeki bayt cinsinden enumların boyutu
cevap
C ve C hem de sayılı
++ bir enum tüm değerler temsil edilebilir bir boyutu, ve bir tam sayı türü ile uyumlu olacaktır. Farklı derleyiciler, türü seçmek için farklı bir algoritma kullanabilir (eğer açıkça tanımlanmış bir ABI gibi başka bir standart tarafından belirtilmemişse).
Mutlaka gerekli değil: C, sizin cevapınıza göre, C++ gibi, numaralandırma türünün derleyici tarafından seçilmesine izin verir. [C Standard] 'da bölüm 6.7.2.2/4'e bakınız (http://www.open-std.org/JTC1/sc22/wg14/www/docs/n1256.pdf). – pmg
Ayrıca, C++ 0x'de, numaralandırma değerlerini yedeklemek için kullanılacak tamsayı türünü belirtmek için yeni * enum sınıfı * kullanabilirsiniz. –
@pmg, teşekkürler. Bunu nereden aldığımı bilmiyorum. Kontrol ettim zaten C90'da durum buydu. – AProgrammer
"Her sayılan türü char ile uyumlu olacaktır, imzalı tamsayı türü veya bir işaretsiz tamsayı türü (C++ 11 yeni sözdizimi ile altta yatan türünü belirlemenizi sağlar). Türünün seçimi olduğunu Uygulama tanımlı) ancak numaralandırmanın tüm üyelerine ait değerlerini temsil edebilecektir. "
"... Bir uygulama, tüm numaralandırma sabitleri görülünceye kadar tam sayısının seçimini geciktirebilir."
ISO/IEC 9899: Yani biz sadece sizeof (enum) için üst sınırları var
1999 (E) s.105. Çoğu sistemde, sizeof (enum) = 4 vardı, ancak STM derleyici, enum
'da yazılan değerlere bağlı olarak sizeof (enum) = 1/2/4 yaptı Düzenleme: Enum değerinizden birini ayarlayabilirsiniz. compiler'ın integer'i enum büyüklüğü olarak seçmesini sağlamak için maks.
- 1. Sınıfın bayt cinsinden boyutu
- 2. MySQL index_length bayt cinsinden mi?
- 3. Bayt boyutu istek nasıl alınır?
- 4. Dizenin boyutunu bayt cinsinden nasıl öğrenebilirim?
- 5. Int, C cinsinden bayt dizisine mi dönüştürülür?
- 6. Bir Swift String'in bayt cinsinden boyutunu hesaplayın
- 7. Dize boyutunu bayt cinsinden nasıl alabilirim?
- 8. Maksimum dosya yükleme bayt cinsinden nasıl edinilir?
- 9. Android Görünümü'nün boyutu piksel cinsinden nasıl belirlenir?
- 10. Matplotlib font boyutu eksen birimleri cinsinden
- 11. Yapı boyutunu ve içeriğini golang olarak bayt cinsinden nasıl alabilirim?
- 12. bayt eklerken farklı derleyici davranışı
- 13. Javascript Date Object - JSFiddle cinsinden farklı değer
- 14. C# cinsinden sabit boyutlu bayt dizisi kullanıcı türünü nasıl yapabilirim?
- 15. Enumların Java'da ayarlayıcılara izin veriliyor mu?
- 16. python unicode dize boyutu alın
- 17. Bayt dizisini farklı veri türlerine ayırma?
- 18. C# temsilci boyutu parametresi boyutu
- 19. php kullanarak görüntü boyutunun inç cinsinden veya dpi cinsinden hesaplanması
- 20. farklı olarak form boyutu ve 7
- 21. Farklı aygıt türlerinde aynı uygulamayı yükleme boyutu
- 22. Swift'de rasgele dizi için bayt boyutu nasıl alınır?
- 23. Önemli hata: İzin verilen bellek boyutu 67108864 bayt bitmiş (122880 bayt ayırmaya çalışıldı)
- 24. Veritabanının boyutu. PHP - MySQL
- 25. Toplam MongoDB veri depolama boyutu
- 26. javascript: içerik boyutundan farklı olarak indirilen dosya boyutu
- 27. MySQL UTF8 varchar sütun boyutu
- 28. Onaltılık ve ondalık cinsinden! Objsize cinsinden tutarsızlık
- 29. Nesneyi bayt dizisine dönüştürme C#
- 30. JavaScript boş obje boyutu
Ve imzalar da farklılık gösterebilir. –