Latest web development tutorials

C関数

一緒にミッションステートメントを実行するための関数のセットです。 すべてのCプログラムは、それがメイン関数main()、すべての単純なプログラムは、他の追加機能を定義することができますされ、少なくとも1つの機能を持っています。

あなたは、異なる機能にコードを置くことができます。 別々の機能にコードを分割する方法を決定するためにあなた次第ですが、論理的に通常分割実施するための特定のタスクに基づいて、各機能を実行します。

関数宣言は、コンパイラの関数名、戻り値の型とパラメータを示します。 関数定義は、関数の実際のボディを提供します。

C標準ライブラリは、呼び出すことができるプログラムの組み込み関数の多くを提供しています。 例えば、関数STRCAT()は別の場所にメモリをコピーするために、2つの文字列を接続するための関数のmemcpy()が使用されます。

そのようなので、上の方法、手順やサブルーチンなどとして、多くの関数が呼び出されています。

定義関数

次のようにC言語の関数の一般的な形式は定義されています。

return_type function_name( parameter list )
{
   body of the function
}

C、関数のヘッダと関数本体のコンポーネントから関数で。 以下に記載されているすべての機能の一部です:

  • 戻り値の型:関数が値を返すことができます。return_typeは、関数によって返される値のデータ型です。 いくつかの関数は、この場合には、戻り値なしreturn_typeキーワードボイドを所望の動作を行います
  • 関数名:これは、関数の実際の名前です。関数名とパラメータリストは、一緒に関数のシグネチャを構成しています。
  • パラメータ:パラメータはプレースホルダのようなものです。関数が呼び出されると、あなたはパラメータに値を渡し、この値は実パラメータと呼ばれています。 パラメータリストは、関数のパラメータ、注文数量の種類があります。 パラメータは、それは、関数はパラメータを含めることはできませんと言うことです、任意です。
  • 主な機能:関数本体は、ミッションステートメントを定義した関数のセットが含まれています。

以下のソースコードのmax()関数です。 この関数は、カウント2つの数の大きい方を返します。これは、2つのパラメータ値num1とnum2のをとります。

/* 函数返回两个数中较大的那个数 */
int max(int num1, int num2) 
{
   /* 局部变量声明 */
   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>
 
/* 函数声明 */
int max(int num1, int num2);
 
int main ()
{
   /* 局部变量定义 */
   int a = 100;
   int b = 200;
   int ret;
 
   /* 调用函数来获取最大值 */
   ret = max(a, b);
 
   printf( "Max value is : %d\n", ret );
 
   return 0;
}
 
/* 函数返回两个数中较大的那个数 */
int max(int num1, int num2) 
{
   /* 局部变量声明 */
   int result;
 
   if (num1 > num2)
      result = num1;
   else
      result = num2;
 
   return result; 
}

最大()関数とmain()関数は、ソースコードをコンパイルし、作品を入れています。 あなたが最終的な実行可能ファイルを実行すると、以下の結果が生成されます。

Max value is : 200

関数の引数

あなたが関数のパラメータを使用する場合は、パラメータ値を受け入れるように変数を宣言する必要があります。 これらの変数は、関数の仮引数として知られています。

関数を入力するときに、関数内のローカル変数が作成されたパラメータの他の形態と同様に、機能を終了するが破壊されます。

関数が呼び出されると、関数にパラメータを渡すには、2つの方法があります。

调用类型描述
传值调用 该方法把参数的实际值复制给函数的形式参数。在这种情况下,修改函数内的形式参数不会影响实际参数。
引用调用 该方法把参数的地址复制给形式参数。在函数内,该地址用于访问调用中要用到的实际参数。这意味着,修改形式参数会影响实际参数。

デフォルトでは、Cは、パラメータを渡すによる呼び出しを使用して。 一般的に、これは、関数内のコードは、関数を呼び出すために使用される実際のパラメータを変更することはできません。