我被问到以下问题而且被难倒了:
当您尝试将对象文件与结构访问链接时会发生什么情况,其中代码已针对相同的体系结构和指令集进行编译,但具有不同的对齐限制?结构定义是相同的。
我觉得代码无法链接有几个原因:
答案 0 :(得分:1)
有几种可能性:
答案 1 :(得分:1)
如果将结构保存到文件中或从文件保存,我建议会出现深刻而可爱的错误,不一定是在编译时。 (尽管编译器项目设置(虽然不容易),但是可以强制各个结构体对齐相同的对齐方式。)如果结构文件没有保存到文件中,也没有使用它们的sizeof以任何方式跨库 - 然后DLL可以在某些情况下装配在一起没有问题。但是对于文件,这是一个大问题,并且会产生不良行为。