代码何时被视为与平台无关?

时间:2011-04-20 16:27:10

标签: cross-platform platform-independent

这个问题是对有关platform-independence of PhysicsFS library的问题的答复进行讨论的结果。问题是特定代码是否可以被视为跨平台或平台无关?代码是否符合某些标准,或者只是在特定的平台上运行?

2 个答案:

答案 0 :(得分:2)

这是一个非常好的问题!我冒昧地猜测这里,所以请耐心等待,因为我没有确切的答案。

我认为“平台无关”是指由隐藏基础架构的东西运行的代码。例如,JVM将语言隐藏在语言之外 - 语言中没有任何东西可以让您访问平台 - 因此平台独立性。 跨平台我相信这是一个不受平台细节影响的东西 - 例如JavaScript:您可以访问浏览器及其所有怪癖。因此编写在所有浏览器上运行的Javascript代码将是跨浏览器的 - 你可以推断我认为这是“跨平台”。

答案 1 :(得分:1)

独立于平台:如果编译器/系统库/ VM / etc ...符合该语言/库/ etc ...的标准,则代码必须在符合规定标准的每个未来平台上编译/运行。这意味着代码不能使用依赖于平台的#ifdef 任何地方,并且该程序不会访问未在所述标准中定义的API。

跨平台:这是一种模糊的,主要是个人偏好。对我来说,这意味着它运行在三个大平台/操作系统(x86(_64)Windows,Linux和/或Mac)中的至少两个上。在大多数情况下,它将在更多平台和体系结构上工作,并使用一些或主要是POSIX API功能(至少对于非Windows代码)。它将包含有限数量的#ifdef s来为需要它的平台调用专用API(posix vs win32 vs ...)。