Qt内存对齐控制
#pragma?pack(push) //保存對齊狀態(tài)
#pragma pack(4)//設定為4字節(jié)對齊
#pragma pack(pop)//恢復對齊狀態(tài)
語法:#pragma?pack( [show] | [push | pop] [, identifier], n )
說明:
1,pack提供數(shù)據(jù)聲明級別的控制,對定義不起作用; 2,調(diào)用pack時不指定參數(shù),n將被設成默認值; 3,一旦改變數(shù)據(jù)類型的alignment,直接效果就是占用memory的減少,但是performance會下降。語法具體分析:
1,show:可選參數(shù);顯示當前packing aligment的字節(jié)數(shù),以warning message的形式被顯示; 2,push:可選參數(shù);將當前指定的packing alignment數(shù)值進行壓棧操作,這里的棧是the internal compiler stack,同時設置當前的packing alignment為n;如果n沒有指定,則將當前的packing alignment數(shù)值壓棧; 3,pop:可選參數(shù);從internal compiler stack中刪除最頂端的record;如果沒有指定n,則當前棧頂record即為新的packing alignment數(shù)值;如果指定了n,則n將成為新的packing aligment數(shù)值;如果指定了identifier,則internal compiler stack中的record都將被pop直到identifier被找到,然后pop出identitier,同時設置packing alignment數(shù)值為當前棧頂?shù)膔ecord;如果指定的identifier并不存在于internal compiler stack,則pop操作被忽略; 4,identifier:可選參數(shù);當同push一起使用時,賦予當前被壓入棧中的record一個名稱;當同pop一起使用時,從internal compiler stack中pop出所有的record直到identifier被pop出,如果identifier沒有被找到,則忽略pop操作; 5,n:可選參數(shù);指定packing的數(shù)值,以字節(jié)為單位;缺省數(shù)值是8,合法的數(shù)值分別是1、2、4、8、16。總結
- 上一篇: Qt贴图最简单程序
- 下一篇: Qt之debug和写log文件