SORU
1 Mayıs 2010, CUMARTESİ


C yapı bellek düzeni?

C# arka plan. C gibi düşük seviyeli bir dil için çok acemi

C#, yapı bellek varsayılan olarak derleyici tarafından ortaya koydu. Derleyici re-sipariş veri alanları veya yüzey alanları arasında ek bir bit örtülü olarak. Tam düzen için bu davranışı geçersiz kılmak için bazı özel öznitelik belirtmek zorunda kaldım.

AFAIK, C veya varsayılan bir yapı bellek düzeni yeniden hizalamak değil. Ama bulunması çok zor olan küçük bir istisna vardır duydum.

C bellek düzeni davranış nedir? Yeniden Sipariş edilmesi gerekir/uyumlu ne değil ()

CEVAP
1 Mayıs 2010, CUMARTESİ


C derleyici her ilkel türü için bazı uyum dikte etmek için izin verilir. Genellikle hizalama tipi boyutu. Ama tamamen uygulamaya özgü.

Doldurma baytları her nesneyi doğru şekilde tanıtıldı. Yeniden izin verilmez.

Muhtemelen uzaktan modern her derleyici dolgu üzerinde kontrol sağlar #pragma pack uygular ve ABİ uymak için programcı bırakır. (Kesinlikle standart dışı olsa da.)

C99 §6.7.2.1:

12-bit sigara içilmez alan Her üye bir yapı ya da union nesne hizalanır uygulama tanımlı bir şekilde yer kendi türü için uygun.

Bir İçinde 13 olmayan bit-alanı yapının nesne üyeleri ve birimlerin hangi bit alanları ikamet adresi olan sipariş hangi onlar artışında bildirilir. Bir yapı için bir işaretçi nesne, uygun dönüştürülmüş. ilk üye (veya üye olursa bir bit alanı, birimi sonra. bulunduğu yer olan), ve tam tersi. İçinde isimsiz bir dolgu olabilir yapısı nesne, ama onun değil başlangıç.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AndroidSale

    AndroidSale

    17 NİSAN 2011
  • DrakeVEVO

    DrakeVEVO

    17 AĞUSTOS 2009
  • The Onion

    The Onion

    14 Mart 2006