是c++ std库平台独立的

Is the C++ std library platform independent?

本文关键字:独立 平台 c++ std      更新时间:2023-10-16

我想知道我在c++中使用'fstream'编写的一些代码是否可以在所有平台上工作?c++标准库是平台独立的吗?还是为每个平台重写了头文件?

都有。您可以在任何平台上使用fstream编译c++程序,但是头文件是依赖于实现的。它们在编译器和操作系统之间会有所不同,但是它们都实现了它们被设计和指定的目的。

c++ 标准库是平台独立的。当然,你需要为你想让它运行的每个平台重新编译你的程序。

在不同的平台或不同的编译器供应商之间,实际的头文件本身可能不同,但它们都应该提供完全相同的服务集。

标准库与平台无关。您如何使用它可能不是(文件的末尾,等等)。

为每个实现重写头文件,但它们必须符合标准。

<fstream>是Iso c++标准的一部分,因此任何符合标准的编译器/工具链都支持它。

我相信stl的基本行为是与平台无关的。然而,实现并非与平台无关。因此,某些行为将会不同。

例如,尝试从空char*开始一个字符串,如s = f(), f()返回一个char* null。在Redhat上,会抛出一个异常;但是在Ubuntu上,它会出现段错误

文件系统(及其文件命名约定)因系统而异。例如,一些(非Unix)文件系统是不区分大小写的,但大多数都是。

而指定文件名的约定则大不相同。

因此,虽然使用标准c++库对可移植性有很大帮助,但您应该考虑到两者之间的差异。

欢呼。