2011-10-21 11 views

答えて

6

両方。任意のプラットフォームでfstreamを使用してC++プログラムをコンパイルできますが、ヘッダーは実装に依存します。コンパイラとオペレーティングシステムの違いはありますが、それらは設計され指定された目的を果たします。

2

C++ 標準ライブラリはプラットフォームに依存しません。もちろん、実行するプラットフォームごとにプログラムを再コンパイルする必要があります。

異なるプラットフォームや異なるコンパイラベンダー間では、実際のヘッダー自体は異なる場合がありますが、すべて同じセットのサービスを提供する必要があります。

0

<fstream>はIso C++標準の一部であるため、標準準拠のコンパイラ/ツールチェーンであればそれをサポートします。

2

標準ライブラリはプラットフォームに依存しません。どのようにそれを使用することはできません(ファイルなどのエンディアン)。

ヘッダーは実装ごとに書き換えられますが、標準に準拠している必要があります。

0

私はstlの基本動作がプラットフォームに依存しないと考えます。しかし、実装はプラットフォームに無関心ではありません。したがって、いくつかの動作は異なります。

たとえば、文字列をs = f()のようにnull char *から開始すると、f()はchar * nullを返します。 Redhatでは、例外がスローされます。しかし、Ubuntuでは、それはsegfaultだけです。

0

ファイルシステム(およびそのファイル命名規則)は、システムによって異なります。例えば、(Unix以外の)ファイルシステムの中には、大文字と小文字を区別しないものもあります。

ファイル名を指定する規則は大きく異なります。

したがって、標準のC++ライブラリを使用すると移植性が大きく向上しますが、違いを考慮する必要があります。

乾杯。

関連する問題