Boş bir sınıf, bir nesnenin boyutu Nedir?C : | Netgez.com
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

  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • Liberator

    Liberator

    14 EYLÜL 2007
  • Wronchi Animation

    Wronchi Anim

    9 Mayıs 2011