天阿sizeof( )的大問題 for BCB5~難道我錯了嗎?? |
答題得分者是:brook
|
dotdot
版主 發表:29 回覆:142 積分:64 註冊:2002-08-09 發送簡訊給我 |
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
|
dotdot
版主 發表:29 回覆:142 積分:64 註冊:2002-08-09 發送簡訊給我 |
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
soga~ 以前都沒去注意, 還好有人提出來, 現在了解了, 說明一下
那一個data alignment的意思
就是會依照你所選的data大小作"多不退少補"的動作
有四個選項:
1. Byte-> 1 byte
2. Word-> 2 bytes
3. Double word-> 4 bytes
4. Quad word -> 8 bytes (Default setting) 因為你的char a[6]定義了6個byte, 所以不足8個byte就補成8個byte
所以實際上BCB幫你作了char a[8]的動作, 只是你在寫code時, 使用char[6], char[7]時, 會出現complier warning.
int x-->4 bytes+char a[8]-->8 bytes 共12 bytes. 為什麼BCB沒事會作一個data alignment?
這只是為了一些有data要排列整齊的使用, 會用到的人自然會想到, 不會用到的人還是不會用到 以此例, 你把
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |