C言語における宣言と定義の主な違いは、変数の宣言はコンパイラに変数の存在を示し、変数の定義はコンパイラに変数のためにどこにどれだけのストレージを作成するかを示すことです。
一般に、変数とはメモリ上の格納場所の名前です。
その変数に格納されている値をプログラム内で変更することが可能である。
さらに、各変数には、その変数が格納できるデータの種類を表す変数型があります。
例えば、プログラマーは整数を格納するために「int」型を、10進数の値を格納するために「float」型を使用することができる。
さらに、特定の変数に格納できる値のセットもあります。
全体として、変数を宣言し定義することが可能である。
C言語における宣言とは
変数の宣言は、コンパイラに変数の型と名前に関する情報を提供します。
言い換えれば、この情報はコンパイラに既存の変数を示すものです。
したがって、コンパイラはその変数に関するすべての詳細な情報を得ることなく、さらにコンパイルを進めることができる。
変数宣言は、プログラマが複数のファイルを使用し、そのうちの1つのファイルで変数を定義するときに便利です。
プログラムをリンクするときに利用できる。
extern “キーワードを使用すると、任意の場所で変数を宣言することができます。
Cプログラムでは、変数を複数回宣言することは可能ですが、ファイルや関数の中で一度だけ定義することができます。
図1:C言語での宣言
上のプログラムでは、3行目で変数を宣言しています。
これらはmain関数の中で定義され、初期化される。
num1とnum2の値が計算され、result変数に代入される。
最後に、コンソールに合計が表示される。
C言語における定義とは
変数の定義は、コンパイラがその変数のためにどこにどれだけのストレージを作成するのかを示します。
変数の定義は、データ型とそのデータ型の1つまたは複数の変数のセットを定義します。
以下は宣言の例です。
int a, b;
これは、変数 a と b を宣言し定義しています。
これは、コンパイラに a と b という 3 つの整数変数を作成するように指示しています。
初期化とは、変数に初期値を代入することです。
宣言の中で変数に値を初期化することも可能である。
例として次のようなものがあります。
int a= 3, b= 3;
C言語における宣言と定義の違い
定義
宣言は、コンパイラが変数に関する完全な詳細を必要とせずに、さらにコンパイルを進めることができるように、既存の変数の保証を行うステートメントです。
一方、定義は、コンパイラがその変数のために、どこに、どれだけのストレージを作成するのかを説明する文です。
これがC言語のDeclarationとDefinitionの主な違いです。
基本情報
また、宣言はコンパイラに変数の存在を示すものであるのに対し、定義はコンパイラに変数のためにどこにどれだけのストレージを作るかを示すものであり、宣言はコンパイラに変数の存在を示し、定義はコンパイラに変数のためにどれだけのストレージを作るかを示すものです。
結論
C言語では、変数を宣言・定義することができる。
さらに、関数の宣言と定義も可能である。
C言語における宣言と定義の主な違いは、変数の宣言はコンパイラに変数の名前と型を示すのに対し、変数の定義はコンパイラに変数のためにどこにどれだけのストレージを作成するかを示すことである。