有人问我以下问题,我被难住了:
当您尝试将目标文件与结构访问链接在一起时会发生什么,其中代码是为相同的体系结构和指令集编译的,但具有不同的对齐限制?结构定义相同。
我觉得代码无法链接有几个原因:
- 可能违反对齐限制
- 一个目标文件结构访问的偏移量与其他文件不同
最佳答案
有几种可能性:
- 无害的:
在这种情况下,不同的对齐限制是良性的,它们会导致相同的最终布局。一切都好,结果好取决于你的类型,不太可能。 - 编译器保存此类信息,并在链接时检测到不匹配。
不太可能,不确定是否有任何编译器这样做。 - 很有可能。
代码将在没有警告或错误的情况下链接,但或多或少会出现异常行为,这是因为程序的不同部分对类型的布局有不同的想法。
关于c - 将目标文件与在具有不同对齐限制的体系结构上编译的结构访问链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26539484/