2017-02-11 4 views
0

どのように同じプログラミング言語の異なるコンパイラの構文間の相違を補正するには?どれが標準であり、世界中でプロジェクトを作るために使われているのかを私はどのように知ることができますか 例:Borland C++コンパイラで4ヶ月働いてC++を学びましたが、現在はBorland、Visual C++、およびDeveloper C++の構文が異なります。私は混乱しているし、いくつかの指導が必要です...異なるコンパイラ、異なる構文

+2

構文が異なる例を挙げてください –

+0

条件付きコンパイルを使用してください:#ifdefなど – nicomp

+0

現在のC++標準をサポートするすべてのコンパイラ(たとえばBorland C++)は準拠していません。 –

答えて

1

最初の解決策は、1つのコンパイラまたは他のものに固有の部品を使用しないことです。言語の機能を使用する前に、インターネットを調べて、特定のコンパイラに固有のものかどうかを確認してください。そうであれば、それを使用しないでください。

これ以外にも実際には異なるコンパイラでコンパイル可能なC/C++プログラムを作ることは労力を要する作業です。コンパイラにはそれぞれ独自の特徴があり、独自の標準レベルのサポートなどがあるため、「まあまあ」ということはありません。C99/C++ 11のコードを書いても、まだ問題があるかもしれません。したがって、実際には、異なるコンパイラを使用してプログラムを実際にコンパイルして(たとえば、コードを中央リポジトリにプッシュする前にテストの一環として)、すべてのコードがコンパイルできるようにして、結果として得られるソフトウェアを実行できます。

"標準"コンパイラについては、LinuxとMacでgccとclangは "金"とみなすことができます。 Windowsでは、マイクロソフトによるコンパイラが標準です。

+0

ありがとうalot、あなたはVisual C++が標準コンパイラであることを意味していますか? –

+0

@AsimShehzadは、あなたがコードを使って何をする予定かに完全に依存しています。移植性が必要な場合は、サポートされているシステムで使用可能なコンパイラでサポートされているC++標準に準拠し、必要な場所での違いを処理する実装固有のラッパーを追加します。移植性が問題でない場合は、特定のコンパイラ実装をベースラインとして選択できますが、ソフトウェアを移植する必要はありません。 – user4581301

関連する問題