看板 C_and_CPP 關於我們 聯絡資訊
#include<stdio.h> int main(void){ typedef struct{ int hour,minutes; double second; } time; typedef struct{ int year,month,day; time hour,minutes,second; } date; date now = {2004,4,7,{12,50,29.51}}; printf("now=%.2d/%.2d/%.2d %.2d:%.2d:%.2f\n",now.month,now.day,now.year,now.hour,now.minutes,now.second); printf("sizeof(now)=%d\n",sizeof(date)); } 以上是我們老師要我們練習結構的練習題 我已經解出來...不過老師有要求我們用sizeof去抓now的大小... 我抓出來的結果是64...可是老師給的答案是32.... 不知道哪裡出了問題? 能否請版友幫我看一下+" 對巢狀結構不太了解.... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.125.207.15
VictorTom:考律alignment的話, 32位元環境答案應該是64沒錯@_@" 05/23 00:44
chrisdar: Hint:最大成員的整數倍 05/23 09:28
kuopin:@@"不太懂耶!= =" 05/23 10:50
zlw:那就是你們老師錯囉,人腦判斷總不會比編譯器比CPU判斷準 05/23 11:12