Kalo gak salah,
struct memang ada hole-nya ya?
Jadi walaupun seharusnya 14, dan kalo di-sizeof per struct member, pasti
juga kalo dijumlah hasilnya 14,
gara-gara struct-hole ini, dia dibuletin jadi 16.
read it somewhere in K&R, I think.
Salam hangat.
-arief
On Wed, 2004-09-01 at 13:43, david wrote:
> mungkin ini merupakan bug dari gcc, versi yang gw
> gunakan
> gcc version 3.3.4
> dengan parameter pada saat build adalah:
> Configured with: ../gcc-3.3.4/configure --prefix=/usr
> --enable-shared --enable-threads=posix
> --enable-__cxa_atexit --disable-checking --with-gnu-ld
> --verbose --target=i486-slackware-linux
> --host=i486-slackware-linux
> Thread model: posix
>
> bugnya adalah pada operasi sizeof, kode ini
> menghasilkan hasil sizeof yang salah:
> typedef struct tagBITMAPFILEHEADER {
> unsigned short bftype;
> unsigned long bfsize;
> unsigned short bfreserved1;
> unsigned short bfreserved2;
> unsigned long bfOffBits;
> } BITMAPFILEHEADER;
>
> apabila structure di atas di cari ukurannya dengan
> menggunakan operasi sizeof, sizeof(BITMAPFILEHEADER)
> maka menghasilkan nilai 16, tetapi menurut perhitungan
> saya kalo ga salah nilai seharusnya adalah 14
>
> ada di antara saudara yang mengalami hal yang sama,
> saya baru mencobanya pada satu komputer yang
> menggunakan slackware 10.0 dan juga dicobakan pada
> DEV-CPP versi 4.9.0 dengan hasil yang sama.
>
> Belum ada penyelesaian untuk "bug" ini selain
> menghitung sizeof untuk masing-masing element dari
> structure di atas :(
>
>
> __________________________________________________
> Do You Yahoo!?
> Tired of spam? Yahoo! Mail has the best spam protection around
> http://mail.yahoo.com
--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis.php