本記事の構成および論理分析にはAI(人工知能)を使用しています。情報の正確性は、システム管理者(UNIXユーザー)による手動検証済みです。
第27回 | C言語でレシピカードを関数として呼び出す、という考え方|データと関数をつなぐ仕組み

はじめてのC言語 | 第27回
はじめに
同じ作業を何度も書いていると、プログラムは少しずつ読みにくくなります。
たとえば、ミックスジュースを作る処理があるとします。
材料を用意して、分量を計算して、順番に表示する。
この流れを何度も使うなら、毎回同じようなコードを書くよりも、ひとまとまりにしておいた方が扱いやすくなります。
この「ひとまとまりにした処理」が、C言語の関数です。
関数は、名前で呼び出せるレシピカード
関数は、レシピカードに似ています。
レシピカードには、料理の作り方がひとまとまりに書かれています。
一度カードを作っておけば、次からはそのカードを見れば同じ料理を作れます。
C言語の関数も同じです。
関数とは、まとまった処理に名前をつけて、あとから呼び出せるようにしたものです。
たとえば、ミックスジュースを作る処理に make_mix_juice という名前をつけておけば、必要な場所からその名前で呼び出せます。
関数を呼び出す形
C言語で関数を呼び出すときは、次のように書きます。
make_mix_juice(1);これは、make_mix_juice という関数を呼び出している1行です。
かっこの中にある 1 は、関数に渡している値です。
この例では「1人分」という意味で使います。
同じ関数でも、渡す値を変えれば、処理の内容を少し変えられます。
make_mix_juice(2);
make_mix_juice(4);このように書けば、同じレシピカードを使いながら、2人分、4人分のように条件を変えて処理できます。
関数の中身を書く
呼び出される側の関数は、次のように定義します。
void make_mix_juice(int people) {
printf("%d人分のミックスジュースを作ります。\n", people);
}ここでは、make_mix_juice という名前の関数を作っています。
voidは、結果を返さない関数であることを表します。make_mix_juiceは、関数の名前です。int peopleは、関数が受け取る値です。
people には、呼び出すときに渡した数字が入ります。
make_mix_juice(3);このように呼び出すと、関数の中では people が 3 として使われます。
全体のコードで見てみる
小さなプログラムとして書くと、次のようになります。
#include <stdio.h>
void make_mix_juice(int people) {
printf("%d人分のミックスジュースを作ります。\n", people);
printf("バナナ、牛乳、ヨーグルトを用意します。\n");
printf("材料を人数分に合わせて混ぜます。\n");
}
int main(void) {
make_mix_juice(1);
make_mix_juice(3);
return 0;
}実行すると、make_mix_juice が2回呼び出されます。
1回目は1人分、2回目は3人分です。
同じ関数を使っていますが、渡す数字が違うので、表示される人数も変わります。
引数は、関数に渡す値
関数に渡す値のことを、引数と呼びます。
今回の例では、make_mix_juice(3) の 3 が引数です。
引数を使うと、関数の中の処理を外から少し変えられます。
レシピカードそのものは同じでも、「何人分作るか」を変えられる、というイメージです。
void は「結果を返さない」という意味
今回の関数は、先頭に void がついています。
void make_mix_juice(int people)void は、この関数が呼び出し元に結果を返さないことを表します。
つまり、この関数は「人数を受け取って、表示する処理をする」ための関数です。
計算結果を main に返す関数ではありません。
C言語の関数には、結果を返すものもあります。
それが戻り値です。
ただし、このページではまず、関数を「呼び出す」ことと、関数に「値を渡す」ことを押さえれば十分です。
関数に分けると、読みやすくなる
関数を使うと、プログラムの見通しがよくなります。
- 同じ処理を何度も書かなくてよくなる
- 処理のまとまりに名前をつけられる
- どこで何をしているのか分かりやすくなる
今回の例では、ミックスジュースを作る処理を make_mix_juice という関数にまとめました。
main の中を見ると、細かい手順を読まなくても「ミックスジュースを作っている」ということが分かります。
まとめ
関数は、処理をひとまとまりにして名前をつけたものです。
- 関数は、名前で呼び出せる
- かっこの中に値を渡せる
- 関数に渡す値を引数と呼ぶ
voidの関数は、結果を返さない
レシピカードを名前で呼び出すように、C言語では関数名を書いて処理を呼び出します。
次は、関数が値を受け取り、計算した結果を返すしくみを見ていきます。
次回予告
次回は、関数に外から値を渡す「引数」を学びます。
同じ関数でも、渡す値を変えることで、少しずつ違う結果を出せるようになります。
復習してみよう
復習したい方は、こちらもあわせてご覧ください。













