Forum

Bildirimler
Hepsini Temizle

struct:boyut

2 Yazılar
2 Üyeler
0 Likes
573 Görüntüleme
(@cozumpark)
Gönderiler: 16309
Illustrious Member Yönetici
Konu başlatıcı
 

Bir kitapta(Memory as a programming concept in C and C++) gördüğüm ilginç bir noktayı paylaşayım dedim, tartışılması faydalı olacaktır:

Aşağıdaki örnekte iki structure tanımlanıyor. Dikkat edilirse ikisinin birbirinden tek farkı elemanların tanımlanış sıraları. Bunun bir etkisi olmayacağını düşünebilirsiniz ama sonuca bakıp tekrar düşünün:) beni epeyce şaşırtmıştı. Yalnız baştan söyleyeyim cevabı pek basit değil, bunu gözönünde bulundurup düşünmek daha iyi olur.

Benim sistemim x86-32bit, işletim sistemi Linux. Belki farklı sistemlerde farklı sonuçlar alınabilir. kendi sistemlerinde test edecek arkadaşlarda farklılıklar çıkarsa paylaşırlarsa sevinirim.

işte kod:

#include <stdio.h>
struct st1
{
        char a;
        char b;
        int c;
};
struct st2
{
        char a;
        int c;
        char b;
};
int main()
{
        struct st1 s1;
        struct st2 s2;
        printf("size of st1:%lu\n", sizeof(s1));
        printf("size of st2:%lu\n", sizeof(s2));
        return 0;
}

xyzt@xyzt-laptop:~/work$ ./deneme
size of st1:8
size of st2:12

Görüldüğü  gibi iki structure'ın elemanları birebir olmasına rağmen boyutları farklı. Bunun sebebi ne olabilir sizce?

 
Gönderildi : 15/08/2009 21:32

(@ugurdasdemir)
Gönderiler: 1824
Noble Member
 

Faydalı bir kaynak eklediğini düşünüyorum yalnız başlığa bakınca kişiler konuya ilişkin net bir anlam çıkarsınlar bence bu nedenden dolayı konu başlığını içeriğe ve konu alanına göre düzenlemeniz faydalı olacaktır.

 
Gönderildi : 17/08/2009 02:37

Paylaş: