数 据 结构对齐
此條 |
现代计算
许多编程语言
定 义
编辑
体系 结构
编辑
RISC
编辑DEC Alpha
x86
编辑x86
C语言struct在 x86上 的 对齐
编辑
C语言
默 认对齐
编辑
结构
char*
, int*
)
指定 对齐
编辑
#pragma pack(push) /* push current alignment to stack */
#pragma pack(1) /* set alignment to 1 byte boundary */
struct MyPackedData
{
char Data1;
long Data2;
char Data3;
};
#pragma pack(pop) /* restore original alignment from stack */
这个结构
缺 省 packing与 #pragma pack
编辑
Microsoft编译
参 见
编辑
参考 文献
编辑
- ^ Ada Representation Clauses and Pragmas. GNAT Reference Manual 7.4.0w documentation. [2015-08-30]. (
原始 内容 存 档于2015-10-13). - ^ F.8 Representation Clauses. SPARCompiler Ada Programmer's Guide (PDF). [2015-08-30]. (
原始 内容 存 档 (PDF)于2021-12-16). - ^ IBM System/360 Operating System PL/I Language Specifications (PDF). IBM. July 1966: 55–56 [2017-11-21]. C28-6571-3. (
原始 内容 存 档 (PDF)于2019-05-29). - ^ Niklaus Wirth. The Programming Language Pascal (Revised Report) (PDF): 12. July 1973 [2017-11-21]. (
原始 内容 (PDF)存 档于2015-03-15). - ^ Attributes - D Programming Language: Align Attribute. [2012-04-13]. (
原始 内容 存 档于2012-04-09). - ^ The Rustonomicon - Alternative Representations. [2016-06-19]. (
原始 内容 存 档于2016-05-09). - ^ pack. [2017-11-21]. (
原始 内容 存 档于2017-03-28). - ^ 6.58.8 Structure-Packing Pragmas. [2017-11-21]. (
原始 内容 存 档于2017-01-08). - ^ Working with Packing Structures. MSDN Library. Microsoft. 2007-07-09 [2011-01-11]. (
原始 内容 存 档于2012-10-18).
- Bryant, Randal E.; David, O'Hallaron. Computer Systems: A Programmer's Perspective 2003. Upper Saddle River, NJ: Pearson Education. 2003 [2017-11-21]. ISBN 0-13-034074-X. (
原始 内容 存 档于2007-08-06).
外部 链接
编辑
- IBM developerWorks article on data alignment (页面
存 档备份,存 于互联网档案 馆) - Article on data alignment and performance (页面
存 档备份,存 于互联网档案 馆) - MSDN article on data alignment
- Article on data alignment and data portability (页面
存 档备份,存 于互联网档案 馆) - Byte Alignment and Ordering (页面
存 档备份,存 于互联网档案 馆) - Intel Itanium Architecture Software Developer's Manual (页面
存 档备份,存 于互联网档案 馆) - Data Alignment when Migrating to 64-Bit Intel® Architecture (页面
存 档备份,存 于互联网档案 馆) - PowerPC Microprocessor Family: The Programming Environments for 32-Bit Microprocessors