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

  • 0TACTICAL0HIPPY0

    0TACTICAL0HI

    30 EYLÜL 2012
  • Jared Busch

    Jared Busch

    25 Mayıs 2011
  • waterfairy17

    waterfairy17

    9 Aralık 2007