SORU
7 Mart 2009, CUMARTESİ


Boş bir sınıf, bir nesnenin boyutu Nedir?C :

Bu ne olabilir diye merak ediyordumboş bir sınıf, bir nesnenin boyutu. Kesinlikle olabilirdeğilbaşvuru için mümkün olması ve diğer herhangi bir nesne gibi işaret gerektiğinden 0 bayt olarak. Ama, ne kadar büyük böyle bir nesne mi?

Bu küçük programı kullandım

#include <iostream>
using namespace std;

class Empty {};

int main()
{
    Empty e;
    cerr << sizeof(e) << endl;
    return 0;
}

Visual C ve özellik listesi-g Derleyiciler de var çıktı1 byte! Bu makine word (32 bit veya 4 bayt) boyutta olmasını bekliyordum beri benim için biraz şaşırtıcı oldu.

Kim açıklayabilirneden1 bayt büyüklüğünde?Neden olmasın4 bayt? Bu derleyici veya makineye bağlı? Ayrıca, biri boş bir sınıf nesnesi için bir neden daha ikna edici bir sebep olabilirolmazboyutu 0 bayt olarak?

CEVAP
7 Mart 2009, CUMARTESİ


Bjarne Stroustrup's C Style and Technique FAQ tırnak boyutu sıfır nedeni "iki farklı nesnelerin adresleri farklı olacak emin olmak İçin." Boyut ve hizalama aslında bakacak bir şey yok burada önemli değil çünkü 1 olabilir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Lamarr Wilson

    Lamarr Wilso

    27 Aralık 2008
  • o0oCyrusViruso0o

    o0oCyrusViru

    11 Mart 2008
  • sdasmarchives

    sdasmarchive

    2 HAZİRAN 2010