もう既に色々な関数を使っていますが,ここでは関数の作りかたを説明します. といっても,既にmain関数を作っているのですが.
int func(int x,int y)
{
int a;
a=x+y;
return a;
}
まず,「int func(int x,int y)」の説明です.
最初のintはその関数がint型のデータを返すということです. 関数があるデータを返すというのは,関数を計算した結果そのデータになる,という意味です.
次の「func」は関数の名前です.どんな名前でも構いませんが, 英字から始まる,英数字の並びである必用があります.
「(int x,int y)」は関数の引数です. 関数を呼び出したときに,そのデータが変数に代入された状態で関数が呼び出されます.
return文が現れると関数が終了します. 関数が終了することを「関数から抜ける」と表現します. この場合,aの値を返します.
関数の中で宣言された変数をローカル変数と呼びます. ローカル変数は,その関数の中でのみ有効です. 別の関数で同じ名前の変数が出てきたとしても,無関係な別物の変数となります. また,関数が呼び出されたときに生成されて,関数が終了した時点で消滅します.
今まで,main関数の中で宣言していた変数もローカル変数です. つまり,main関数以外からは変数にアクセスできません.
関数が終了すると,関数内で使った変数の内容は全て消えてしまいます. しかし,前回の変数の値を使いたい場合もあります.
そんなときはstatic変数を使います.
int f(x)
{
static int sum = 0;
sum=sum+x;
return sum;
}
これは,過去に渡された数の話を返す関数です.
だいたい100行くらいを目処にしましょう. 100行より大きい関数はデバッグも大変だし,読みにくいので考え直しましょう.
説明していない単語の残りは以下の通りです.
auto,const, enum,extern, register,sizeof, struct,typedef,union,volatile
今回はreturnが減っただけか.
C言語には多くの「標準関数」と呼ばれる関数が用意されています. 普段使っているprintfもそうです. ただ,標準関数は誰かが用意してくれたから使えるのであって,マイナーな環境では 標準関数が用意されていなかったり,容量の都合で入れることが出来なかったりします. そんな場合は仕方なく小さい関数を自分で書いたりしますが, 楽をするために出来る限り標準関数を使うようにしましょう.