C/C++ 中的 #pragma pack (1),在 Delphi(Object Pascal) 中应该用什么

解决方案 »

  1.   

    C++ 不是很懂,#pragma pack (1) 表示是什么含义呀?
    :)
      

  2.   

    大概是编译器打包的大小吧,如在C/C++中使用它:一个静态变量 unsigned char c; (Pascal中是 BYTE c;)
    它在使用 #pragma pack (...) 后结果如下:
    #pragma pack (8): 占用 8 字节内存
    #pragma pack (4): 占用 4 字节内存
    #pragma pack (2): 占用 2 字节内存
    #pragma pack (1): 占用 1 字节内存
    #pragma pack ():  使用缺省内存大小它在 Object Pascal 中应该怎么表示呢?
      

  3.   

    #pragma pack (4) = {$Z4}
    #pragma pack (2) = {$Z2} 
    #pragma pack (1) = {$Z1}
    #pragma pack ()  = 无
      

  4.   

    一般情况下,变量占用的内存大小是自动控制的,通常以字长为单位对齐,Delphi 中用 {$Zx} 不知道有没有用处,看帮助的说明似乎只对枚举型的变量才有用处。
    定义大小在 Delphi 中应该不是很好控制,Record 类型可以使用 Packed 标识来使其各域的变量按照字节对齐。
      

  5.   

    已解决:
    http://expert.csdn.net/Expert/topic/1310/1310723.xml?temp=.1816065非常感谢