C でモジュール間で関数を呼び出す: 関数を宣言: ターゲット モジュールのヘッダー ファイルで呼び出される関数を宣言します。関数の実装: ソースファイルに関数を実装します。モジュールのリンク: リンカーを使用して、関数宣言と実装を含むモジュールをリンクします。関数の呼び出し:呼び出したいモジュールに対象モジュールのヘッダファイルを組み込み、関数を呼び出します。
C のモジュール間で関数を呼び出す
C では、プロジェクトの規模が大きくなると、コードをさまざまなモジュールに編成して保守性を向上させ、再利用性。モジュールを使用すると、異なるモジュール間で関数と変数を共有することもできます。このチュートリアルでは、モジュール間で関数を呼び出す方法を紹介し、実践的なケースを示します。
ヘッダー ファイルとソース ファイル
各モジュールは、ヘッダー ファイルとソース ファイルの 2 つのファイルで構成されます。ヘッダー ファイルには関数と変数の宣言が含まれ、ソース ファイルにはそれらの実装が含まれます。
関数宣言
あるモジュール内の関数を別のモジュールから呼び出し可能にするには、その関数をヘッダー ファイルで宣言する必要があります。関数宣言では、関数の戻り値の型、名前、パラメーター、および戻り値の型を指定します。例:
// moduleA.h int sum(int a, int b);
関数の実装
ソース ファイルに関数を実装します。ソース ファイルには、関数の実際のコードが含まれています。例:
// moduleA.cpp int sum(int a, int b) { return a + b; }
モジュールのリンク
コンパイラが関数の宣言と実装がどこにあるかを認識するには、モジュールを相互にリンクする必要があります。これは、さまざまなモジュールのオブジェクト ファイルを 1 つの実行可能ファイルに結合するリンカーを使用して実行できます。コマンド ラインで、次のコマンドを使用してモジュールをリンクします。
g++ -o executable moduleA.o moduleB.o
実用的なケース
2 つのモジュールがあるとします: moduleA
と モジュールB
。 moduleA
には greet()
という名前の関数があり、moduleB
には print()
という名前の関数があります。 moduleB
から moduleA
の greet()
関数を呼び出せるようにしたいと考えています。
で greet()
を宣言 関数: <pre class='brush:cpp;toolbar:false;'>// moduleA.h
void greet(string name);</pre>
greet で実装()
関数: <pre class='brush:cpp;toolbar:false;'>// moduleA.cpp
void greet(string name) {
cout << "Hello, " << name << "!" << endl;
}</pre>
で、ヘッダー ファイル moduleA.h
を使用し、greet()## を呼び出します。 # 関数:
// moduleB.cpp #include "moduleA.h" void print() { greet("John"); }
2 つのモジュールをリンクします:
g++ -o executable moduleA.o moduleB.o実行可能ファイルを実行します:
./executable出力:
Hello, John!
以上がC++ でさまざまなモジュールの関数を呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。