C言語プログラミングにおける関数宣言と関数定義の主な違いは、関数宣言はその関数が何であるかを示し、関数定義はその関数が何を行うかを示すということである。
C言語はデニス・リッチーによって開発された高水準汎用プログラミング言語です。
C++、Python、Java、PHPなど多くの言語の基礎となるプログラミング言語です。
C言語プログラミングにおいて、関数は重要な概念です。
これは、特定のタスクを実行するステートメントのセットです。
メインプログラムの中にすべてのステートメントを書くのではなく、プログラマーは関数を作成し、メインプログラムの中で呼び出すことができます。
これにより、プログラムがより読みやすくなります。
関数の実行後、制御はメインプログラムに戻されます。
関数は宣言と定義を持っています。
宣言はプロトタイプであり、定義には実際の実装が含まれます。
C言語プログラミングにおける関数宣言とは?
関数宣言は、特定の関数についてコンパイラに指示するものです。
その構文は次のとおりです。
return_type function_name (パラメータリスト);
function_name は、関数を識別するためのものです。
パラメータ・リストは、タスクを実行するために関数に渡されるものから構成されています。
return_type は、関数の出力のデータ型を表します。
関数が整数を出力する場合、戻り値のデータ型はintです。
double値であれば、戻り値の型はdoubleです。
関数が何も値を返さない場合はvoidです。
例えば,2つの整数を掛け合わせる関数を想定する.関数の宣言は以下の通りである.
int multiply (int num1, int num2);
この関数はmultiplyと呼ばれる。
この関数はnum1とnum2という2つの整数を取得します。
戻り値の型はintである.したがって,この関数は整数の値を出力する.最後に、宣言はセミコロンで終わります。
また,以下のように宣言の中でパラメータのデータ型だけを記載することも可能である.
int multiply (int, int);
C言語プログラミングにおける関数定義とは?
関数定義とは、関数の実装を指します。
つまり、関数が実行する実際のステートメントを表します。
その構文は以下の通りです。
return_type function_name (parameter_list){ (パラメータリスト)
// 関数の記述
}
function_name は、関数を識別するためのものです。
関数を呼び出すと、その関数に値が渡されます。
これらの値はパラメータにコピーされます。
パラメータは1つでも複数でもよく、それぞれに対応するデータ型があります。
return 型は、その関数の出力を表します。
プログラマーは、中括弧の中に関数のステートメントを記述することができます。
以下にプログラム例を示す。
図1:関数の宣言と定義を含むC言語プログラム
上のプログラムでは、3行目に関数宣言が表示されている。
これは、関数名やパラメータなど、コンパイラに関数の情報を提供するものです。
mainメソッドでは、num1とnum2という2つの整数が用意されている。
9行目では,これらの値がmultiplyに渡されている.関数が実行される。
num1の値がxに、num2の値がyにコピーされ、結果が返されて変数ansに格納されます。
最後にprintf文がその値をコンソールに表示する。
上のプログラムでは、3行目に関数宣言が表示され、14行目から16行目までが関数定義が表示されています。
C言語プログラミングにおける関数宣言と関数定義の違い
定義
関数宣言とは、関数名、戻り値の型、パラメータを指定するプロトタイプで、関数本体がないものを指します。
一方、関数定義は、関数名、戻り値の型、パラメータを関数本体とともに指定する実際の関数を指す。
したがって、ここが関数宣言と関数定義の大きな違いです。
機能性
機能的には、関数宣言と関数定義の違いは、関数宣言がその関数について、その関数をどのように呼び出すかなどをコンパイラに示すのに役立ち、関数定義はその関数が何を実行すべきかを書くのに役立つということです。
関数定義とは、その関数を実際に実装することである。
構成
関数宣言には、関数名、パラメータリスト、戻り値の型が含まれ、関数定義には、関数名、パラメータリスト、戻り値の型、関数本体(関数の記述)が含まれます。
この点も、関数宣言と関数定義の違いです。
結論
C言語プログラムでは、関数には宣言と定義があります。
C言語プログラミングにおける関数宣言と関数定義の主な違いは、関数宣言はその関数が何であるかを示し、関数定義はその関数が何を行うかを示すということである。