我正在编写一个Linux程序,目前编译和x86和x86_64正常工作,现在我想知道是否有什么特别的,我需要做的,以使其在其他架构上工作。
我所听到的是,对于跨平台代码,我应该:
还有什么我需要担心的吗? 我目前不是针对任何其他架构,但是我希望在某个时候支持ARM,而且我想我可能还会在任何架构上工作。
另外,关于字节顺序的第二点,我需要做什么特别的文本input? 我用getline()
读取文件,所以看起来应该自动完成。
根据我的经验,一旦代码在两个架构上运行良好,它将更容易移植到第三个架构。 输入不应该是一个问题。 结构对齐可能是一个问题,如果你做任何事情对齐是一个问题。
注意任何可能依赖于平台的东西:依赖于位域以相同的方式对齐,假设变量是特定的大小等等。如果你的代码相对于硬件是抽象的,你可能会遇到很少的问题。 如果你正在做一些类似网络代码的事情,你必须确保你正确地与网络字节顺序对齐。
我已经将设备驱动程序从PPC移植到x86,然后移植到x86_64; 在几千行中,可能有一些变化,主要与结构和整数排序有关。
当然,唯一知道的方法就是尝试一下。