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

  • Christopher Bill

    Christopher

    30 NİSAN 2009
  • TokShogun

    TokShogun

    6 HAZİRAN 2009
  • wwjoshdu

    wwjoshdu

    18 ŞUBAT 2011