いつも感謝しています。Nです。
今までは
printf関数のように、あらかじめ用意された関数を用いたプログラムをお話してきました。
今回は、「自分で関数を作ってしまおう」というお話をします。
自作関数を作れるようになると、プログラムが更に楽しくなってくると思いますので是非マスターしてくださいね。
そもそも、関数とは何なんでしょうか?
例えば、printf関数ならば、
「これを実行することで、文字を画面上に表示する仕事をしてくれるもの」と言えます。
つまり、
関数とは、「実行するとある仕事をしてくれるもので、それがあると便利、助かる!」
と考えることができます。
ちなみに、
このようにあらかじめ用意してくれている関数を、標準関数と呼んだりします。
では、自作関数とは何でしょうか?
自作関数とは、「~ができるオリジナルの関数」ということになります。
この”~”の部分には、「あると便利だなぁ」という機能を当てはめると思ってください。
つまり、自作関数とは、
「実行すると~という仕事をしてくれて、それがあると便利、助かる!」というものを自分で作成するということになります。
もっと言うならば、
「標準関数に無いのならば、作ってしまえ、関数を!」って感じです(笑)。
では、
自作関数の作り方の基本について、具体的にお話していきます。
今までのプログラムで、必ず
int main( void )
{
変数定義;
処理;
return( 0 );
}
というmain関数を作成していました。
自作関数を作る場合も、実はこの作りとなんら変わりはありません。
つまり、main関数の名前を変えてしまうだけで作れてしまいます。
例えば、
「1~50までの合計を表示する自作関数を作りたい」とします。
自作関数の名前を、sumと決めたとすると、
int sum( void )
{
int ii;
int sum;
sum = 0;
for( ii = 1; ii <=50; ii++ )
{
sum += ii;
}
printf( "sum = %d¥n", sum);
return( 0 );
}
のように、
main関数の名前の部分を変えて、後は今までお話してきたようにプログラムを書けば、自作関数sumが作成できます。
後は、
この自作関数sumを、main関数の中で使えばよいだけです。
使い方は、標準関数のprintf関数と同じ要領です。
つまり
printf関数の場合、printfの後に( )を付けて、その中に表示させたい引数を入れてあげました。
例えば、
int main( void )
{
printf("Hello");
return( 0 );
}
のように。
ただ、この自作関数sumの場合は、引数がvoidと定義しているので、引数は入らないとなり、sum(); のように書けばOKです。
具体的にプログラムソースを記載すると、
#include <stdio.h>
/* 自作関数のプロトタイプ宣言 */
int sum( void );
/* main関数 */
int main( void )
{
/* 自作関数の呼び出し */
sum( );
return( 0 );
}
/* 自作関数 */
int sum( void )
{
int ii;
int sum;
sum = 0;
for( ii = 1; ii <=50; ii++ )
{
sum += ii;
}
printf( "sum = %d¥n", sum);
return( 0 );
}
のようになります。
ここで、一つだけ補足説明をします。
main関数の前に、int sum(void); という文をいれていますね。
これは”プロトタイプ宣言”というもので、自作関数sumというものを使いますということを事前に宣言する必要があります。
書き方は簡単で、自作関数の{ }の前部分をとりだして、終わりにセミコロン( ; )を付けるだけです。
今回は、自作関数の作成の仕方の基本を述べました。
纏めると、
1: 自作関数にさせたいことを決める
2: 自作関数を作成する
※作り方は、main関数のmainの名前を変えて作る
3: main関数の中で、その自作関数を使う(自作関数を"呼ぶ"と言ったりする)。
4: 自作関数を使う宣言をmain関数の前にする(プロトタイプ宣言)。
※プロトタイプ宣言の仕方は、自作関数の{ }の前の部分を取り出して、セミコロン( ; )を付ける。
となります。
次回以降で、自作関数について更に詳しく述べていきますが、
まずは、今日の自作関数の作成の基本を押さえておきましょうね。