是c++ std库平台独立的
Is the C++ std library platform independent?
我想知道我在c++中使用'fstream'编写的一些代码是否可以在所有平台上工作?c++标准库是平台独立的吗?还是为每个平台重写了头文件?
都有。您可以在任何平台上使用fstream编译c++程序,但是头文件是依赖于实现的。它们在编译器和操作系统之间会有所不同,但是它们都实现了它们被设计和指定的目的。
c++ 标准库是平台独立的。当然,你需要为你想让它运行的每个平台重新编译你的程序。
在不同的平台或不同的编译器供应商之间,实际的头文件本身可能不同,但它们都应该提供完全相同的服务集。
标准库与平台无关。您如何使用它可能不是(文件的末尾,等等)。
为每个实现重写头文件,但它们必须符合标准。
<fstream>
是Iso c++标准的一部分,因此任何符合标准的编译器/工具链都支持它。
我相信stl的基本行为是与平台无关的。然而,实现并非与平台无关。因此,某些行为将会不同。
例如,尝试从空char*开始一个字符串,如s = f(), f()返回一个char* null。在Redhat上,会抛出一个异常;但是在Ubuntu上,它会出现段错误
文件系统(及其文件命名约定)因系统而异。例如,一些(非Unix)文件系统是不区分大小写的,但大多数都是。
而指定文件名的约定则大不相同。
因此,虽然使用标准c++库对可移植性有很大帮助,但您应该考虑到两者之间的差异。
欢呼。
相关文章:
- 如何创建独立于平台的宏来包装编译器扩展?
- 为什么C++哈希函数的返回类型是 std::size_t,而不是独立于平台的类型?
- 如何在Qt WebChannel中以独立于平台的方式在HTML/Javascript和C++之间进行通信?
- Qml:等宽/普通字体的平台独立方式
- 发行配置的无效配置参数在X64平台上独立执行
- 独立于平台的方式捕获控制台/终端关闭事件
- 最佳平台独立 pi 常数
- 如何实现独立于平台的异步文件写入
- C++:如何保存独立于平台的二进制文件
- 独立于平台的OpenSSL库
- 包括具有一个头文件和独立源文件的特定于平台的库
- 如何以尽可能独立于平台的方式从 c++ 调用 .NET
- 最易于使用、轻量级、独立于平台的图形库,用于C++
- 尽管严重依赖JVM,但Java是如何独立于平台的
- 使用独立于平台的C/C++对数据块进行加密
- 是否可以像Java一样在VM中运行,从而使C++平台独立
- Mac地址-C++-独立于平台
- 如何以独立于平台的方式终止挂起在阻塞 IO 上的线程
- 与GLUT一起使用的独立于平台的用户界面库
- c++使运行时间独立于平台