C言語入門:②-4 関数【基礎ロジック】

これまでの記事では、「順次処理」「分岐処理」「繰り返し処理」について学習してきました。

ここまで理解できていれば、プログラムの基本的な処理は一通り書ける状態になっています。

次に、処理が増えてきた場合、以下のような問題が出てきます。

  • 同じ処理を何度も書いてしまう
  • コードが長くなり読みにくくなる

本記事では、これらを解決するために必要な「関数」について解説します。

本記事の目的・学習目標

学習目標は次の4点です。

  • 関数とは何かを理解する
  • 処理をまとめる仕組みを理解する
  • 引数と戻り値の考え方を理解する
  • 関数の使い方を理解する

この記事での学習が完了することで、複雑な処理の組み合わさったプログラムを整理し、見やすく書けるようになります。

関数とは

関数とは、処理をひとまとめにして定義しておくものです。

処理をまとめるという役割のため、理論上はどのようなプログラムも関数を使用しないで作成することは可能ではあります。

関数は、その場で実行されるものではなく、あらかじめ定義しておくものという点が重要です。

イメージとしては、変数と似ています。

  • 変数 → 値を入れておく箱
  • 関数 → 処理をまとめておく箱

関数の中には、実行したい処理(命令のまとまり)を書きます。

関数の役割

プログラムを書いていると、以下のように同じ処理を何度も使いたい場面が出てきます。

  • 同じ計算を何度も行う
  • 同じ表示処理を何度も行う

これらは関数を使用することで解決します。

関数の役割は、

  • 処理をまとめて、何度でも使えるようにすること

です。

関数の基本構造

関数には「戻り値の型」とありますが、ここではまず「関数は処理をまとめるもの」という点に注目します。

「戻り値の型」についても本記事の後半にて解説しています。

そして、上図の定義した関数を呼び出す必要があり、呼び出し時の形は以下になります。

処理の流れ

プログラムは必ず main関数から開始されます。

定義した関数を同じく定義された変数と同じように見た場合、呼び出されない限り、実行されることはありません。

つまり処理の流れとしては次のように進みます。

  1. main関数が実行される
  2. 上から順に処理される
  3. 関数の呼び出しを見つける(関数の呼び出しがなければ定義された関数は処理されない)
  4. 呼び出された関数へ移動する
  5. 関数の中の処理を実行する
  6. 処理が終わると元の場所に戻る

関数の作り方

ここまでの関数についての流れをまとめると次のような流れで動きます。

  1. 関数を定義する
  2. 必要な場所で呼び出す
  3. 定義された処理が実行される

次に関数を使用した例をコードに書きます。

関数を使用したコード例

関数には引数、戻り値というものがありますがここではまず、どちらも無しの場合の例をコードにします。

プログラムを見てまずmain関数が呼び出されるため①の赤枠で囲んだ箇所が最初に動作する箇所になります。

main関数にてprintTotal1、printTotal2の2つの関数が呼び出され、各関数の内容が処理されていくという流れになります。

引数とは

引数とは関数から別の関数へ渡したい値や変数です。

具体的には以下の個所が引数になります。

  • 型 関数名(引数

関数の中で定義した変数は、その関数の中でしか使用することができないというルールがあります。

変数を関数の間で受け渡して使用したい場合、main関数から定義した関数に処理が移動するときに、引数として渡す必要があります。

引数を理解するにあたり、考え方としては呼び出したい関数の作成を先に考えます。

その後にmain関数にて渡したい値や変数を入れるという流れになります。

戻り値とは

戻り値とは、関数の中で計算した結果を、外に返す仕組みです。

具体的には、ここまでのロジック解説などでreturn 0;と記載していた0が戻り値になります。

引数と戻り値の違い

引数と戻り値の違いはデータの流れの方向です。

  • 引数 → 外から関数へ値を渡す
  • 戻り値 → 関数から外へ値を返す

まとめ

本記事では、関数の基本について解説しました。

関数は、処理をまとめて、必要なときに呼び出して使う仕組みです。

今回の学習内容は以下の通りです。

  • 関数は定義しただけでは実行されず、呼び出したときに実行される
  • プログラムは main関数から開始される
  • 関数を使うことで、同じ処理をまとめて再利用できる
  • 引数 → 関数に値を渡す仕組み
  • 戻り値 → 関数から結果を返す仕組み(returnを使用)

本記事で登場した用語

本シリーズでは、記事で登場する専門用語を補助知識カテゴリの「④-4 用語辞典」 にまとめています。

① 関数

処理をひとまとめにして定義する仕組み
必要なときに呼び出して実行することができる

② 定義

関数の処理内容をあらかじめ書いておくこと

③ 呼び出し

定義した関数を実行すること

④ main関数

プログラムの開始地点となる特別な関数
最初に実行される

⑤ 引数

関数に渡す値
関数の外から値を受け取るために使用する

⑥ 戻り値

関数の処理結果として返される値
呼び出し元で受け取ることができる

⑦ return

関数の処理結果を呼び出し元に返す命令
実行されると、その場で関数の処理が終了する

⑧ 変数

値を保存しておくための箱
関数の中で定義した変数は、その関数内でのみ使用できる

関連記事

次の記事では、応用ロジックの概要 について解説します。

▶ 次の記事
C言語入門シリーズ:③-0 応用ロジック【概要】

◀ 前回の記事
C言語入門:②-3 繰り返し処理【基礎ロジック】

◆同じカテゴリの記事一覧(概要ページ)
C言語入門シリーズ:②-0 基礎ロジック【概要】全5記事

◆シリーズの記事一覧
C言語入門シリーズ:プログラムの基本構造【記事一覧】

1 COMMENT

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です