C ++ std库平台是独立的吗?

时间:2011-10-21 20:31:21

标签: c++

我想知道我在C ++中使用'fstream'编写的代码是否适用于所有平台? C ++标准库平台是独立的还是已经为每个平台重写了标题?

6 个答案:

答案 0 :(得分:6)

两者。您可以使用fstream为任何平台编译C ++程序,但标头与实现有关。它们在编译器和操作系统之间会有所不同,但它们实现了它们的设计和指定目的。

答案 1 :(得分:2)

C ++ 标准库与平台无关。当然,您需要为要运行它的每个平台重新编译程序。

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

答案 2 :(得分:2)

标准库与平台无关。你如何使用它可能不是(文件的结束等)。

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

我相信stl的基本行为与平台无关。但是,实施并非平台无动于衷。因此,某些行为会有所不同。

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

答案 5 :(得分:0)

文件系统(及其文件命名约定)因系统而异。例如,某些(非Unix)文件系统不区分大小写,但它们的mot是。

规定文件名的惯例有很大不同。

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

干杯。