このヘッダファイルのコードの下に見て:
#ifndef _INCvxWorksh //防止该头文件被重复引用
#define _INCvxWorksh //防止该头文件被重复引用
#ifdef _cplusplus //表示当前使用的是C++编译器
//#ifdef _STDC_ //表示当前使用的是C编译器
extern "C" {
#endif
/*...*/
#ifdef _cplusplus
}
#endif
#endif /* _INCvxWorksh*/ //防止该头文件被重复引用
コードの上部、「EXTERN」C「は」セクションでは、2つの意味が含まれています。
意味:変更され、その目的は、「EXTERN」にある、コンパイラ、関数や変数を伝えることです。このモジュールまたは他のモジュールの宣言に使用することができます。このモジュールは、典型的には、関数に提供され、キーワードのextern他のモジュールによって参照されるグローバル変数は、ヘッダファイルモジュールに宣言しました。
たとえば、とき、モジュールAで定義された参照グローバル変数や関数などのモジュールB、モジュールAの必要性は、それだけで声明を含めます!モジュールBは、機能モジュールAと呼ばれ、この保証しAが与えられたコンパイル・プロセスに定義され、はなく見つけることができない機能は、コンパイラがモジュールA接続オブジェクトコード位相からコンパイル生成するがモジュールBあなたはに位置して呼び出したい機能を見つけます。
IIの意味:それは目標を修正することは、それはC言語コンパイラと接続するための方法に従って、変数や関数を修正することを、「C」にあります。このメカニズムは、C、C ++コンパイラは、一致する名前の問題を解決するためになさ指定された為替へのシンボリックリンクです。言い換えれば、それはC言語で書かれたプログラムは、C ++コンパイラすることができ、安定したが呼び出されることを保証します。