5

VisualStudioはプロジェクトがCであるかC++であるかをどのように認識しますか?これを示す構成またはビルドパラメーターはありますか?

VSはCにCコンパイラを使用し、C ++にC++コンパイラを使用しますか?

4

3 に答える 3

7

VS は C には C コンパイラを使用し、C++ には C++ コンパイラを使用しますか?

いいえ

コンパイラは、ファイルがまたはファイルclであるかどうかを(ファイル拡張子に基づいて)知るのに十分なほどスマートです-C++ファイルと見なします。また、コンパイラはファイルを C プログラムのソース ファイルと見なし、それに応じてコンパイルします。ただし、コンパイルとファイル用に別のファイルをロードします。しかし、これは実装定義です。.cpp.cccl.cdllCC++

clただし、ファイル拡張子に基づいての動作をオーバーライドするスイッチがあります。

C++ ソース ファイルとしてコンパイルするには (拡張子が であっても.c)、コマンドは次のようになります。 cl /TP yourfile.c ただし、ファイルには有効な C++ コードが含まれている必要があります。

また、C ソース ファイル (拡張子は.cpp) としてコンパイルするには、コマンドは次のようになります。 cl /TC yourfile.cpp ただし、ファイルには有効な C コードが含まれている必要があります。

于 2013-03-21T13:04:11.467 に答える
2

拡張とは別に、 に行くとFile Properties->AdvancedCompile Asコードを C コードとして明示的に扱うために使用できるオプションがあります。

/TPC++ および C 用に生成されます/TC

ただし、Joachim がコメントで指摘したように、VC++ は地球上で最も準拠しているコンパイラではないため、「機能するものは何でも」を選択することは、実際には合理的な選択肢かもしれません。

于 2013-03-21T13:07:19.340 に答える
0

C または C++ プロジェクトはありません。どのプロジェクトでも、C、C++、およびその他の言語ファイルを混在させることができます。

2 番目の質問に対してどのような回答が期待されているかは明確ではありません。C 言語は C コンパイラでコンパイルされ、C++ 言語は C++ コンパイラでコンパイルされます。他にどのようなケースが考えられるか想像するのは難しいです。2 つのコンパイラは、単一の実行可能プログラムとして実装される場合とされない場合がありますが、これは興味深い詳細ではありません。

于 2013-03-21T13:48:29.833 に答える