
C言語入門|関数を作る基本形
前の記事で、
「関数を使うとプログラムがスッキリする」
という話をしました。
では次の疑問です。
「関数って、どうやって作るの?」
この節では、
C言語で関数を作るときのいちばん基本の形
を、じっくり見ていきましょう。
関数を使うまでの2つのステップ
関数を利用する流れは、とてもシンプルです。
| ステップ | 内容 |
|---|---|
| ① | 関数を作る(関数の定義) |
| ② | 作った関数を使う(関数の呼び出し) |
まずは、
関数を作ること から始めます。
関数を作ることを、
関数の定義 と呼びます。

いちばんシンプルな関数の形
引数も戻り値も使わない、
いちばん基本的な関数は、次の形で定義します。
void 関数名(void)
{
関数が呼び出されたときに実行する処理
}初めて見ると、
少し独特な形に感じるかもしれませんね。
でも、1つずつ分解して見ていくと、
とても単純です。
関数定義を構成する要素
関数定義は、次の要素でできています。
| 部分 | 役割 |
|---|---|
| void | 戻り値がないことを表す |
| 関数名 | 関数の名前 |
| (void) | 引数がないことを表す |
| { } | 関数の処理内容を書く場所 |
この形を覚えるだけで、
関数作成の第一歩はクリアです。
シンプルな関数を定義してみよう
では、実際のコードを見てみましょう。
次のプログラムは、
画面にメッセージを表示する関数を定義しています。
#include <stdio.h>
void greet(void)
{
printf("ようこそC言語の世界へ!\n");
}この greet という関数は、
- 引数を受け取らず
- 値も返さず
- 画面にメッセージを表示する
という、とても単純な処理を行います。
関数定義だけではプログラムは動かない
ここで大事な注意点があります。
このコードには、
main関数が存在しません。
そのため、
これまでと同じ方法でコンパイルしようとすると、
エラーになります。
関数は、
作っただけでは動きません。
あとで必ず、
main関数などから呼び出して使う必要があります。
関数は「あとから使える部品」
関数を定義すると、
- その定義より下に書かれたコードから
- その関数を利用できる
というルールがあります。
つまり、
関数は「部品」として先に用意しておき、
あとから使うイメージです。
関数の中に関数は作れない
もう1つ、
とても重要なルールがあります。
関数の中に、別の関数を定義してはいけません。
次のような書き方はできません。
void outer(void)
{
void inner(void) // これはNG
{
...
}
}C言語では、
すべての関数は
ソースコードのトップレベル に定義します。
void が2つある理由(今は気にしなくてOK)
関数定義を見ると、
void 関数名(void)
と、void が2回出てきます。
「なんだか意味深だな……」
と思った人もいるでしょう。
今の段階では、
こう覚えておけば十分です。
| 位置 | 意味 |
|---|---|
| 左の void | 戻り値がない |
| 右の void | 引数がない |
詳しい意味や使い分けは、
このあとじっくり解説していきますので、
今は「おまじない」くらいの感覚で大丈夫です 😊
関数定義は設計図を書くようなもの
関数を定義するというのは、
- 「どんな名前で」
- 「どんな仕事をする部品か」
を宣言することです。
この時点では、
まだプログラムは動きません。
でも、
プログラムを整理するための土台
は、ここでしっかり作られています。
次にやること
ここででは、
- 関数を作るとはどういうことか
- いちばん基本的な関数の形
- 関数定義のルール
を確認しました。
次は、
- 関数を実際に呼び出す方法
- main関数との関係
- 関数が実行される流れ
を見ていきます。
関数を「作る」だけで終わらせず、
ちゃんと使えるようにする
ところまで、一緒に進んでいきましょう 😊
