编译器会将记录的前4个byte作为1个dword。

解决方案 »

  1.   

    不会吧假设type b=record
                        i:byte
                        j:integer
                        k:Dword
                 end;
     那不就讲i,j合在一起了  
                       
      

  2.   

    不是,你可能会得到一个很奇怪的结果。
    因为Delphi对Record是进行对齐的,所以i尽管是占有1byte,但是编译器有可能给它分配4个byte,这样做强制转换就会得到一个非常奇怪的结果(因为另外3个byte是垃圾)。
    此外,如果你用packed record,那么你得到的dword应该是i和j的前3个byte组成得到的dword。