架构独立C代码

时间:2016-06-21 09:07:38

标签: c

任何人都可以建议我如何编写独立于平台的C代码。无论是32位还是64位系统/编译器,代码都应该正常工作。是否有任何编译器为我提供此功能?或者在编写这些代码时我应该注意哪些事项?

2 个答案:

答案 0 :(得分:1)

如果代码应该能够在x86和amd64上编译,那么当你写得正确时,不应该有太多问题(给定托管的环境)符合标准且不使用硬件特定功能的代码 如果你很幸运,你可以假设有一个POSIX环境。如果是这种情况,你应该(几乎)没有编程可移植代码的问题。

但是,如果您希望二进制文件在多个体系结构上运行,则需要限制自己编译为使用您编译的ISA共享的最小公共指令集的二进制文件。这不适用于ARM& x86但你应该可以在amd64上运行x86程序,因为amd64是扩展名。

然而,您可以编译多个体系结构的代码,并编写一个检测架构的包装脚本,并在可行的情况下启动相应的二进制文件。

答案 1 :(得分:-2)

C本身,如果平台依赖,因为它将代码编译为机器的CPU指令集。您无法创建可在不同平台上运行的已编译C可执行文件,但您绝对可以编写与平台无关的C代码。您需要使用提供此功能的框架功能。

我使用的一个这样的框架是Qt Framework。您使用Qt的功能编写逻辑,而不是语言的默认功能,如文件读/写,网络访问,创建UI组件等。