たとえば、WindowsでCまたはC++で記述した場合。Mac OS、Linux、Unixライクなシステムなど、他のオペレーティングシステムでコンパイルして実行できるよりも保証されていますか?それで、それはCまたはC ++がクロスプラットフォーム言語であることを意味しますか?
4 に答える
ある標準に厳密に準拠するCまたはC++プログラムを作成する場合、そのプログラムは、その標準に準拠するツールチェーンを提供するすべてのプラットフォームで動作する必要があります。その意味で、CとC++はクロスプラットフォーム言語です。
いいえ...多くの多くのプラットフォームに対応するCおよびC++コンパイラがありますが、コンパイラごとに独自の癖があり、リンク先のライブラリはプラットフォームごとに完全に異なります。Mozillaには、ソフトウェアをクロスプラットフォームにするために使用する機能と避けるべき機能のガイドラインがありました。
Windows*nixでのクロスプラットフォームの互換性に役立つcygwinのような環境があります。
かなり移植性のあるプラットフォームライブラリに依存しない、標準のCであるライブラリを作成できます。
Windows APIに直接アクセスすると、他のプラットフォームでの実行(またはコンパイル)に失敗します。正しいAPIに間接的にアクセスする標準関数を使用する場合、または#ifdefガードを追加して正しいプラットフォームAPIにアクセスする場合、答えはより適切です。前者はクロスプラットフォームである必要があります。Latterは、コードが対応するプラットフォームで動作します。
Mac OSX、Linux、そしてもちろんWindowsの場合、C++を記述してコンパイルできます。個人的な経験から、私は常にWindowsがC ++の使用に最も簡単であり、Linuxがそれに続き、MaxOSXがはるかに遅れていることを発見しました。私の経験では、コンパイラーは気質的である傾向があります。サポートコミュニティはWindows上のC ++に適しているため、またはプログラミングには当然優れているため、Windowsでの問題は常に少なくなっています。2位にラベルを付けましたが、Linuxの経験はあまりありません。
編集:あなたは実行してコンパイルするために「保証された」と言います。基本的なC++の場合、これは間違いなく当てはまりますが、一部のより高度な機能では、プラットフォーム間でサポートが異なる場合があります。