C - 関数
関数は、一緒にタスクを実行するステートメントのグループです。すべての C プログラムには、main() という関数が少なくとも 1 つあります。 、そして最も単純なプログラムはすべて、追加の関数を定義できます。
コードを個別の関数に分割できます。コードをさまざまな関数に分割する方法は自由ですが、論理的には、各関数が特定のタスクを実行するように分割されます。
関数の宣言 関数の名前、戻り値の型、およびパラメーターについてコンパイラーに通知します。関数の定義 関数の実際の本体を提供します。
C 標準ライブラリには、プログラムで呼び出すことができる多数の組み込み関数が用意されています。たとえば、strcat() 2 つの文字列を連結するには memcpy() あるメモリの場所を別の場所にコピーしたり、さらに多くの機能を実行したりできます。
関数は、メソッド、サブルーチン、プロシージャなどと呼ばれることもあります。
関数の定義
Cプログラミング言語での関数定義の一般的な形式は次のとおりです-
return_type function_name( parameter list ) { body of the function }
C プログラミングの関数定義は 関数ヘッダー で構成されます と 関数本体 .ここに関数のすべての部分があります −
- <リ>
戻り型 − 関数は値を返す場合があります。 return_type 関数が返す値のデータ型です。一部の関数は、値を返さずに必要な操作を実行します。この場合、return_type はキーワード void です。 .
<リ>関数名 - これは関数の実際の名前です。関数名とパラメータ リストが一緒になって関数シグネチャを構成します。
<リ>パラメータ − パラメータはプレースホルダーのようなものです。関数が呼び出されると、パラメーターに値を渡します。この値は、実パラメータまたは引数と呼ばれます。パラメーター リストは、関数のパラメーターの型、順序、および数を参照します。パラメータはオプションです。つまり、関数にはパラメーターが含まれていない場合があります。
<リ>関数本体 − 関数本体には、関数の動作を定義するステートメントのコレクションが含まれます。
例
以下は、max() という関数のソース コードです。 .この関数は、2 つのパラメーター num1 と num2 を取り、2 つの間の最大値を返します −
/* function returning the max between two numbers */ int max(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; }
関数宣言
関数の宣言 関数名と関数の呼び出し方法をコンパイラに伝えます。関数の実際の本体は個別に定義できます。
関数宣言には次の部分があります −
return_type function_name( parameter list );
上記で定義された関数 max() の場合、関数宣言は次のとおりです −
int max(int num1, int num2);
パラメータ名は関数宣言では重要ではなく、型だけが必要なので、以下も有効な宣言です −
int max(int, int);
あるソース ファイルで関数を定義し、別のファイルでその関数を呼び出す場合は、関数宣言が必要です。このような場合、関数を呼び出すファイルの先頭で関数を宣言する必要があります。
関数の呼び出し
C 関数を作成するときに、関数が何をする必要があるかを定義します。関数を使用するには、定義されたタスクを実行するためにその関数を呼び出す必要があります。
プログラムが関数を呼び出すと、プログラム制御は呼び出された関数に移されます。呼び出された関数は、定義されたタスクを実行し、return ステートメントが実行されるか、関数の終わりの閉じ中括弧に到達すると、プログラム制御をメイン プログラムに戻します。
関数を呼び出すには、関数名とともに必要なパラメーターを渡すだけでよく、関数が値を返す場合は、返された値を格納できます。たとえば-
ライブデモ#include <stdio.h> /* function declaration */ int max(int num1, int num2); int main () { /* local variable definition */ int a = 100; int b = 200; int ret; /* calling a function to get max value */ ret = max(a, b); printf( "Max value is : %d\n", ret ); return 0; } /* function returning the max between two numbers */ int max(int num1, int num2) { /* local variable declaration */ int result; if (num1 > num2) result = num1; else result = num2; return result; }
main() とともに max() を保持し、ソース コードをコンパイルしました。最終的な実行可能ファイルを実行すると、次の結果が生成されます-
Max value is : 200
関数の引数
関数が引数を使用する場合、引数の値を受け入れる変数を宣言する必要があります。これらの変数は仮パラメータと呼ばれます
仮パラメータは、関数内の他のローカル変数と同様に動作し、関数へのエントリ時に作成され、終了時に破棄されます。
関数の呼び出し中に、関数に引数を渡す方法は 2 つあります −
Sr.No. | 通話の種類と説明 |
---|---|
1 | 値による呼び出し このメソッドは、引数の実際の値を関数の仮パラメーターにコピーします。この場合、関数内のパラメーターに加えられた変更は、引数には影響しません。 |
2 | 参照による呼び出し このメソッドは、引数のアドレスを仮パラメーターにコピーします。関数内では、呼び出しで使用される実際の引数にアクセスするためにアドレスが使用されます。これは、パラメーターに加えられた変更が引数に影響することを意味します。 |
デフォルトでは、C は 値による呼び出し を使用します 引数を渡します。一般に、関数内のコードは、関数の呼び出しに使用される引数を変更できないことを意味します。
C言語