超簡単!!関数の記述方法

 

関数には、引数と戻り値があります。

以下の4つのケースに分けられます。

①引数も戻り値もない場合

②引数があって、戻り値がない場合

③引数はないが、戻り値がある場合

④引数も戻り値もある場合

 

書き方をみていきましょう。

①引数も戻り値もない場合のケース

#include <stdio.h>

void show_message(void)

{

printf("今日もいい天気ですね。");

return;      //return;は省略可能

}

 

int main()

{

show_message();

return 0;

}

 

関数は、引数も戻り値も設定しない場合

「void 関数名(void) { 命令 } 」

と書きます。

 

関数を呼び出す場合は、

「関数名();」

で簡単に呼び出せます。

 

何度も呼び出したい場合は、

int main()

{

show_message();

show_message();

show_message();

show_message();

show_message();

}

このように記述するだけでOKです。

 

 

②引数があって、戻り値がない場合のケース

#include <stdio.h>

void show_message(int x)

{

printf("今は、朝%d時です。\n", x);

return;      //return;は省略可能

}

 

int main()

{

int time = 7;

show_message(time);

show_message(8);

}

 

mainの中に、「show_message(time)」と、先ほどとは違い、()の中にtimeが書かれていますが、「time」は、「引数」といい、関数に渡したい値や変数を記述します。

また、関数の中にも、(int x)と書かれています。

こちらは、「(もらう値の型名  仮引数)」と記述します。

仮引数というのは、関数の中だけで使える変数のことで、先ほど関数を呼び出した時にtimeという名前の変数を引数として送ったと思いますが、それをコピーしてここでは、int型の変数 x に代入されているようなイメージです。

仮引数名は、好きな名前をつけてもらって大丈夫です。

 

 

③引数はないが、戻り値がある場合のケース

#include <stdio.h>

char show_at(void)

{

return '@';

}

 

int main()

{

char c;

c = show_at();

printf("%c", c);

return 0;

}

 

戻り値がない場合は、「void 関数名」と書いていましたが、戻り値がある場合には、

char 関数名」

int 関数名」

double 関数名」

など、戻り値として設定したい値の型名を記述します。

今回は、'@'を戻り値として設定したいので、「char 関数名」と指定しています。

 

④引数も戻り値もあるケース

#include <stdio.h>

int tax_calc(int x)

{

int taxin = x * 1.08;

return taxin;

}

 

int main()

{

int t_garigari, t_comic, t_jump;

int garigari = 60;

int comic = 400;

int jump = 230;

t_garigari = tax_calc(garigari);

t_comic = tax_calc(comic);

t_jump = tax_calc(t_jump);

printf("ガリガリ君%d円、コミック%d円、ジャンプ%d円", t_garigari, t_comic, t_jump);

}

③の時と同様、戻り値として戻したい型名を設定する必要があります。また、②と同様、引数の設定が必要です。

「int 関数名(int x)」

のように、記述します。

また、引数と戻り値の型名を変更して、

「double 関数名(int x)」

のように記述することも可能です。

 

呼び出し元では、関数として戻ってきた値を、一旦変数に格納するのが一般的です。

t_garigari = tax_calc(garigari);

このように記述していますね。

 

④**引数が2つ以上あるケース

#include <stdio.h>

int max(int x ,int y)

{

if(x > y){

return x;

}else{

return y;

}

}

 

int main()

{

int result;

int a = 12;

int b = 15;

result = max(a,b);

printf("%d", result);

}