类型转换的问题 编译器会将记录的前4个byte作为1个dword。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不会吧假设type b=record i:byte j:integer k:Dword end; 那不就讲i,j合在一起了 不是,你可能会得到一个很奇怪的结果。因为Delphi对Record是进行对齐的,所以i尽管是占有1byte,但是编译器有可能给它分配4个byte,这样做强制转换就会得到一个非常奇怪的结果(因为另外3个byte是垃圾)。此外,如果你用packed record,那么你得到的dword应该是i和j的前3个byte组成得到的dword。 兄弟甚为郁闷 怎样让CPU窗口能够显示源码? 关于delphi字符串的问题 那儿有InfoPower 4000 for d7 ,d6 or bc++6下载? 1个打包出现的问题 再问一个关于线程资源释放的问题。 如何向在内存里创建的临时表里写入数据?怎么将这些数据提交到服务器(通过clientdataSet连接) 我需要Delphi和SQL Server 2000的图片,用来美化我的论文! 为什么打不开Word 如何把MDI里的子窗体做成没有边框(标题)? 为什么会出错? 一个很简单的问题
i:byte
j:integer
k:Dword
end;
那不就讲i,j合在一起了
因为Delphi对Record是进行对齐的,所以i尽管是占有1byte,但是编译器有可能给它分配4个byte,这样做强制转换就会得到一个非常奇怪的结果(因为另外3个byte是垃圾)。
此外,如果你用packed record,那么你得到的dword应该是i和j的前3个byte组成得到的dword。