CおよびC++のプリプロセッサディレクティブについて質問があります。
私は次のコードを持っています:
#ifdef __cplusplus
//part A
extern "C"
{
// somecode here
}
#else
//part B
#endif
私は、c++コンパイラーが事前定義された__cpluspluswillcコンパイラーがそうではないことを知っています。
そして、このコードセットをacヘッダーファイルに入れます。c++ファイルにはこのcヘッダーファイルが含まれます。そして私の質問は、ファイルがc ++コンパイラでコンパイルされている場合は、パートAをコンパイルし、acコンパイラでコンパイルされている場合は、パートBをコンパイルしますが、通常、このコードを使用してc++ファイルを作成します。 cファイルは相互に作用します。上記のようなコードがある場合、CファイルとC ++ファイルの両方が一緒にあり、gccコンパイラを使用しているということですが、このコードはどのようにコンパイルされますか?パートAだけがコンパイルされますか?またはパートBのみがコンパイルされますか?または、コードが2つの部分に分割され、パートAがC ++用にコンパイルされ、パートBがCファイル用に同時にコンパイルされますか?