C++を介して、それらを宣言することによって、C関数を呼び出すために用意されています、あなたはその後、CからあなたのC関数を呼び出すことができます
extern "C" {
#include "my-C-code.h"
}
++ C.からあなたが行うのと同じ方法でこれはC++の名前の符号化そうだろう防ぎリンクエラーが発生します。これは本質的に、Roonyが振り返りながら提案したものです。しかしあまり秘密ではない。彼が指摘しているように、Cファイルにすでにこの文がある場合は、これを行う必要はありません。 C++コンパイルを認識するプリプロセッサの#ifdef文を使用します。この指定子は、名前のマングリングを無効にします。そして、関数定義と本体だけに使用されます(ただし、プリプロセッサ指令を妨げません)。他のほとんどのCコードはC++のように動作するようです。このexternに含まれるいくつかのCヘッダーは、コンパイルされません。特に、予約されたC++キーワードの名前を持つ関数を持つものがコンパイルされます。
詳細については、"mixing c and cpp"を参照してください。「C++コードに非システムCヘッダーファイルを含めるにはどうすればよいですか」セクション。
C++コードはCライブラリを呼び出すことができます - 何が問題なのですか? –
そのまま使用してください。確実にするべきことは、cヘッダに 'extern c 'がない場合は、ファイルに追加する必要があることです。 –
スタックオーバーフローへようこそ!質問を編集して[これまでに試したこと](http://whathaveyoutried.com)を表示してください。問題のあるコードの[mcve]を含める必要があります。次に、特定の問題を解決するために役立つことができます。 [ask]も読んでください。 –