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