SORU
13 NİSAN 2010, Salı


Boyutu 0 (sıfır)döndürebilir

İşletmen hiç C veya C 0 (sıfır) geri dönmek mümkün müdür ? Eğer mümkünse, görünüm standartları açıdan doğru mu?

CEVAP
13 NİSAN 2010, Salı


C boş bir sınıf veya bir yapı tanımı tarafından sizeof En az 1. C standardı, 9/3 "Sınıflar", "sınıf tipi Tam nesneleri ve üye subobjects boyutu sıfırdan farklı olmalıdır."

C boş bir yapı dışında uzantısı (veya derleyici bir kusur) tarafından izin verilmiyor.

Bunun bir sonucu dilbilgisi (gerektiren orada bir şey içinde parantez) ile birlikte bu cümleden 6.7.2.1/7 "Yapısı ve Birliği belirteçleri": "Eğer bu yapı-beyannamesi-listesini içerir hayır adlı üyeleri, davranışı tanımsız".

Sıfır boyutlu bir yapıya izin verilmişse, o zaman dil uzatma (ya da derleyici bir kusur). GCC örneğin, uzantısı diyor ki "Structures with No Members" belgelenmiştir:

GCC C bir yapısı yok üyeler için izin verir:

 struct empty {
 };

Yapı boyutu sıfır olacak. C , boş yapıları dilin bir parçası değildir. G tipi char tek bir üyesi olsaydı, boş yapıları değerlendirir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bethliebert

    bethliebert

    23 EKİM 2008
  • RiceBunny

    RiceBunny

    16 ŞUBAT 2006
  • TokShogun

    TokShogun

    6 HAZİRAN 2009