Previous: グローバル変数
Up: 関数を作る II
Previous Page: グローバル変数
Next Page: 制御構造 II
関数の定義において、関数名の前に関数の型を以下のように書くことで、 返り値の型を定義出来る。
[関数の型] 関数名( 引数の型 引数 [,...] ){
文
}
関数の返り値がない場合は、void を指定する。 (関数の型を省略すると整数型になる点に注意)
引数のない関数を定義する際に、引数を記述しないと、引数のチェックを行わない だけで、引数のない関数を定義したことにはならない。引数のない関数を指定する ときは、void を用いる。
noarg( void ){ ... }
上の関数定義では、関数の型を省略しているので、整数型、引数には void を 指定しているので、引数はなしとなる。
関数が定義される前に、関数が使用されると、コンパイラはその関数を整数型と 仮定してしまい、実際の関数の定義と一致しない事が出てくる(勿論、その場合、 コンパイルエラーとなる)。そこで、コンパイラにあらかじめ関数の仕様を教えて おけば、このようなコンパイルエラーを防ぐことが出来、同時にプログラムミスの 防止にもなる。
関数の宣言は、ファイルの先頭で、以下のように行う。
[関数の型] 関数名( 引数の型 [,...]);
宣言は、最後にセミコロンをつけるのを忘れてはならない。 また、引数の変数名はあっても良いが、単に無視されるだけである。即ち、 宣言に書いた変数名は、いかなる意味においても意味を持たない。
これまで我々が学習してきた変数はローカル変数と呼ばれ、必ず { と } の間で宣言してきた(例えば関数の中)。即ち、{ と } に囲まれているとその中でのみ使用可能となる。これに対して、いかなる中括弧にも 囲まれていない箇所に宣言された変数をグローバル変数という。実は、C 言語では、 グローバル変数には2種類あるのだが、ここでは我々はこの点についてこれ以上 学習はしない。ただ、中括弧に囲まれていない箇所に宣言された変数は、そのファイル にあるどの関数(メイン関数を含む)からも使う事が出来ることを覚えて置けば 十分である。
通常、グローバル変数は、ファイルの先頭、#include や関数宣言の後に書いて おけば良いであろう。