C言語入門::関数
もう既に色々な関数を使っていますが,ここでは関数の作りかたを説明します.といっても,既に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もそうです.ただ,標準関数は誰かが用意してくれたから使えるのであって,マイナーな環境では標準関数が用意されていなかったり,容量の都合で入れることが出来なかったりします.そんな場合は仕方なく小さい関数を自分で書いたりしますが,楽をするために出来る限り標準関数を使うようにしましょう.
この文書の履歴
- 2006-04-XX まだ未公開