char a和 int b進行打包,看一下這個結構體是否占用4+1個位元組
首先看一下例子
#include struct abc;
int main (int argc ,char **argv)
顯示的結果是
the buf is 8
發現這個abc的結構體所占用的記憶體空間大小為8個位元組,和之前我所想的不一樣。**初步分析原因,可能是編譯器為了提高效率而犧牲換取時間的效率。**因此為了提高效率,編譯器會自動位元組對齊從而提高效率,具體位元組對齊方式和環境有關,一般為4個位元組對齊。
#include struct abc;
#include struct abc;
struct aaa;
int main (int argc ,char **argv)
顯示的結果為:the buf is 8,12打包的順序不同,占用記憶體空間的大小也可能不同。
從上面也可以看出,在我的操作環境中,結構體所占用的空間大小為4位元組的倍數。
C語言學習 結構體
include include include 宣告結構體 struct student student結構體名 int age char int main 初始化結構體變數 bbbb strcpy s1.name,bbbb s1.age 22 s1.m 列印結構體變數,逐個列印 printf s ...
C語言學習 結構體
題目要求 學生的記錄由學號 姓名 專業組成,根據班級人數,將學生記錄存放在結構體陣列中,由於部分同學轉專業,學生記錄發生了變化,請程式設計實現根據學號查詢查詢學生並修改專業,分別輸出轉專業和未轉專業的學生記錄。要求 班級人數 學生記錄均由鍵盤輸入 include define m 100 要求 1....
c語言學習結構體
結構體格式 struct 結構體名稱 結構體是一種集合,它裡面包含了多個變數或陣列,資料型別可以相同也可以不相同。eg可以包含乙個人的身高 double 體重 int 顏值 char ii 21 結構體的定義如下所示,struct為結構體關鍵字,tag為結構體的標誌,member list為結構體成...