網址鏈接html
http://www.javashuo.com/article/p-uxxsfqxv-eh.html函數
主要內容:htm
1. C語言中,結構體的3中不一樣聲明和定義方式;blog
2. struct在C和C++中的區別。C++能夠在struct中添加函數,相似於class;繼承
3. C++中,struct和class的區別。內存
struct的成員默認權限是public,class的成員默認權限是private;get
struct的默認繼承方式是public,class的默認繼承方式是private;class
4. 結構體的做用——封裝;變量
5. 結構體的大小和內存對齊;權限
爲了提升存儲的速度,VC對結構體內的變量存儲的起始地址進行「對齊」操做。
1)默認對齊方式:結構體中每一個成員的起始地址相對於結構體內存起始地址的偏移量必須是當前成員所佔用內存大小(字節數量)的倍數。同時,VC爲了保證結構體的內存大小是字節邊界數(即結構中佔用內存最大的成員類型的字節數)的倍數,會在最後一個變量申請內存後,根據須要充填相應的字節數。
2)在VC中提供了#pragmapack(n)來設定變量以n字節對齊方式。