戻る

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もそうです.ただ,標準関数は誰かが用意してくれたから使えるのであって,マイナーな環境では標準関数が用意されていなかったり,容量の都合で入れることが出来なかったりします.そんな場合は仕方なく小さい関数を自分で書いたりしますが,楽をするために出来る限り標準関数を使うようにしましょう.

この文書の履歴

Copyright © 瓶詰堂 all rights reserved.