結構體變量的首地址爲最寬基本類型成員大小的整數倍數。
各成員變量存放的起始地址相對於結構體變量的起始地址的偏移量必須爲該變量類型所佔用的字節數的倍數
結構體總大小爲結構體中最寬數據類型成員大小的整數倍。
#pragma pack(n)來設定變量以n字節對齊方式。n字節對齊就是說變量存放的起始地址的偏移量有兩種情況:
第一、如果n大於等於該變量所佔用的字節數,那麼偏移量必須滿足默認的對齊方式,
第二、如果n小於該變量的類型所佔用的字節數,那麼偏移量爲n的倍數,不用滿足默認的對齊方式。
結構的總大小也有個約束條件,分下面兩種情況:
如果n大於所有成員變量類型所佔用的字節數,那麼結構的總大小必須爲佔用空間最大的變量佔用的空間數的倍數,否則必須爲n的倍數。
字節對齊
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
SLAM中CMakeLists常見庫的相關配置
Mr.Silver
2020-07-05 06:11:54
如何實現VMware虛擬機上的ubuntu與windows主機共享文件夾
Mr.Silver
2020-07-05 06:11:54
控制科學與工程:隨手筆記(5)--Eigen、vscode配置
Mr.Silver
2020-07-05 06:11:54
GCD加載圖片並按比例拉伸展示
dispatch_async(dispatch_get_global_queue(0, 0), ^{ //處理的耗時操作 NSData *data = [NSData dataWithContents
qq_31292239
2020-07-03 08:22:57
Swift代碼拆建按鈕
let btn:UIButton = UIButton() btn.setTitle(courseName as String, forState: .Normal) //btn的名字
qq_31292239
2020-07-03 08:22:56
IOS 權限設置
qq_31292239
2020-07-03 08:22:56
Registered driver with driverClassName=oracle.jdbc.driver.OracleDriver was not found, trying direct
技术大咖秀
2020-07-03 03:08:51
android更改應用語言
/** * 更改應用語言 */ public class LangugeUtils { /** * 更改應用語言 * * @param context * @param lan
金胖
2020-06-28 22:46:22
android緩存清理工具
/** * 緩存清理工具 */ public class DataCleanUtils { /** * 獲取緩存大小 * @param context * @return * @
金胖
2020-06-28 22:46:11
上傳項目代碼到碼雲被拒絕處理辦法
金胖
2020-06-28 22:46:10
上課記錄
將多張圖片存入數組 然後使用 var animation = new cc.Animation(array, 0.025); 創建空Sprite來運
a745466731
2020-06-26 22:08:41
關於 RestTemplate 中文亂碼和List接收
技术大咖秀
2020-06-24 06:25:23
flutter 環境變量全局配置 $PATH
圈内的代码超人
2020-06-24 06:24:33
分析u-boot Makefile "if" 語句
狗炜别叫我打游戏
2020-06-23 20:10:38