
はじめてのC言語 | 第11回
毎回くり返す作り方に、少し疲れてきたとき
カフェで同じドリンクを、何度も作っていると、
あるとき、ふとした瞬間に、こんなことを思います。
カップを取って、材料を量って、混ぜて、注ぐ。
その流れは、もう体が覚えていて、
特別に考えなくても、自然に手が動きます。
でも、新しく入った人に作り方を聞かれたり、
あとで見返せるようにメモを書こうとすると、
頭の中で、最初から順番を並べ直すことになります。
「あれ、これって……
毎回、同じ順番を思い出しているな」
そう気づいたとき、
この流れを、そのまま一つにまとめておけたら、
きっと、少し楽になるのに、と思うようになります。
レシピカードという発想
そこで登場するのが、レシピカードです。
レシピカードには、
- 材料
- 手順
- 出来上がり
が、ひとまとめに書いてあります。
一度カードを作ってしまえば、
次からは、そのカードを見るだけで同じ料理が作れます。
これだけで、作業はぐっと楽になります。
レシピカードを「呼び出す」
さらに便利なのは、
レシピカードは名前で呼べるという点です。
「このカードのレシピでお願いします」
そう言われれば、調理が始まります。
プログラミングでいう 関数 も、
まったく同じ考え方です。
関数とは、
まとまった手順に名前をつけて、いつでも使えるようにしたもの
つまり、関数は、名前で呼び出せるレシピカードなのです。
C言語で見てみる|レシピカードを呼び出す
ここまで、レシピカードを使って
「関数」という考え方を見てきました。
この感じを、
C言語のコードで、そっとのぞいてみましょう。
レシピカードを呼ぶ、たった1行
C言語でも、
レシピカードを使うときに書くのは、とてもシンプルです。
make_mix_juice(1);この1行は、
「ミックスジュースのレシピカードを、1人分で使ってください」
とお願いしているだけです。
作り方の細かい中身は、
ここには書かれていません。
でも、それで大丈夫です。
カードの中身は、別の場所にある
レシピカードには、
ちゃんと「中身」があります。
ただ、それは
呼び出す側が、毎回考えるものではありません。
void make_mix_juice(int cups) {
/* recipe is here */
}ここには、
材料の量を決めたり、
順番どおりに作ったりする処理が入ります。
でも、今はまだ、
その中身を読む必要はありません。
使う側が見るのは、名前と数字だけ
C言語で関数を使うとき、使う側が気にするのは、
- レシピカードの名前
- 何人分作るか
make_mix_juice(2);数字を変えるだけで、
同じレシピカードを、何度でも使えます。
今回は「呼び出す」だけでいい
このページで大切なのは、
C言語の文法を覚えることではありません。
- 名前で呼び出せる
- 必要な分だけ伝えられる
その感覚を、
C言語の形でも確認できれば十分です。
細かい文法は、
あとから、いくらでも追いついてきます。
関数の中身を、やさしく見てみる
関数には、レシピカードと似た要素があります。
- カードの名前
- 使う材料
- 出来上がる結果
プログラミングでは、それぞれを
- 関数名
- 引数
- 戻り値
と呼びます。
材料を渡すと、決まった手順で作って、結果を返してくれる――それが関数です。
分量が変わっても、カードは同じ
たとえば、
ミックスジュースのレシピカードがあるとします。
1人分でも、3人分でも、
やることは同じです。
違うのは、材料の量だけ。
この「材料の量」にあたるのが、
プログラミングでは 引数 です。
レシピカードそのものは変えずに、
渡す材料だけを変える。
だから関数は、
いろいろな場面で使い回せるのです。
カードが増えると、全体が見えてくる
レシピカードが増えてくると、
キッチンのようすが変わってきます。
- このカードは下ごしらえ
- このカードは仕上げ
- このカードは盛り付け用
役割が分かれていると、
どこで何をしているのかが、すぐ分かります。
プログラムも同じです。
関数に分けておくと、
- 読みやすくなる
- 直す場所が分かりやすくなる
- 安心して手を加えられる
という良いことが起きます。
おわりに|まずはカードを1枚
最初から、立派な関数を作る必要はありません。
- よく使う処理
- 何度も出てくる手順
それを一枚のレシピカードにしてみる。
それだけで、
プログラムの世界は、少し整理されて見えてきます。
次は、「材料を渡す」話へ
今は、数字をそのまま渡していますが、
この数字にも、ちゃんと意味があります。
次は、
- この数字は何なのか
- どうやって使われるのか
- 結果は、どう戻ってくるのか
を、もう少しだけ詳しく見ていきましょう。
レシピカードは、
受け取って、作って、返してくれる。
その仕組みが、
少しずつ見えてきます。
さらに学びたいあなたへ
📘 用途ごとに選ぶ Linux のおすすめ本

