首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FreePascal PACKRECORDS指令给Delphi

FreePascal PACKRECORDS指令给Delphi
EN

Stack Overflow用户
提问于 2017-10-27 15:45:34
回答 1查看 297关注 0票数 1

我正在尝试使用Delphi东京中的FreePascal 2.2.2 ibase60.inc这个答案底部链接(一个32位Windows应用程序)。

它包含指令{$PACKRECORDS C}文档说:

特殊值C用于指定GNU编译器的对齐方式。它只应在为C例程制作导入单元时使用。

谷歌搜索gnu cc结构对准我在C结构包装的失落艺术中读到了关于现代处理器的文章

..。x86和ARM上的基本C类型是自对准的.指针,无论是32位(4字节)还是64位(8字节)也是自对齐的.

有什么我必须替换的代码指令,以确保正确的(非)包装在Delphi中调用这些方法的InterBase/Firebird DLL?或者我可以假设Delphi的行为类似于GNU CC?

这里是该ibase60.inc文件的完整代码。

EN

回答 1

Stack Overflow用户

发布于 2017-10-28 20:07:09

gcc排列,也称自然排列,是将边界上的每一个字段按其大小整除。如果您单击Ondrej到此页的链接,您将看到每个类型都对齐了它的大小。(尽管IMHO是Ondrej链接到的页面中的语言很笨拙)

因此,如果在游戏中没有16字节的基类型,它应该是可以的。(我认为德尔福一旦适应了16字节的基类型,就会将A+更改为A16+)

我知道fpc有16字节对齐,但甚至不知道对应的字段类型是什么(64位powerpc上的int128?SSE类型?)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46978871

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档