戻り値は引数にする書き方

関数の戻り値は様々な使い方ができます。 これまでは、戻り値は必ず変数に代入して使ってきましたが、今回は変数に入れない使い方をご紹介します。 記述方法としては多少複雑になりますが、コードを冗長にしないようにする時にはとても使えるテクニックです。 では、サンプルプログラムを見てみましょう。

スポンサーリンク

サンプルプログラム

ソースファイル名:main.c

実行方法

上のソースを書き写してステップ実行してください。
Add と Dec の二つの関数を通過する順番に注目してください。

関数の戻り値の使い方

直接引数にする

今までは、関数の戻り値を受けるときは、毎回変数を宣言し、そこに値を一時的に保存してから使用していました。

しかし、これでは関数の戻り値を受けるときに毎回変数を宣言しないといけないし、プログラムも冗長になるため効率的ではありません。
そんな問題を解消するために、C言語では戻り値を演算や引数などで直接使用することができます。
サンプルプログラムでは、

answer = add( 3, Dec( 5, 3 ) );

の部分で関数の戻り値を引数として使っています。
今回は、add 関数の第二引数に dec 関数の戻り値を利用しています。

これを実行すると、まず、dec 関数が先に実行されます。 そして、その戻り値を取得し、それを add 関数の第二引数として、add 関数が呼ばれます。

サンプルプログラムでは、

dec( 5, 3 );

の実行結果が add 関数の引数になるので、

add( 3, 2 );

を呼び出しするのと同じことになります。

直接計算をする

関数の戻り値を使って、直接計算する事もできます。 サンプルプログラムでは、

answer = add( 3, 5 ) * 5;

が、それにあたります。
これを実行すると、add 関数がまず呼ばれて、その戻り値を取得してきます。
今回なら 8 です。 そして、その後、掛け算が行われるので、

answer = 8 * 5;

と同じ結果が得られます。

スポンサーリンク