カテゴリ: C言語 更新日: 2025/12/22

C言語の関数定義と呼び出しを完全ガイド!初心者でも分かる基本の書き方

C言語の関数定義と呼び出しの基本
C言語の関数定義と呼び出しの基本

先生と生徒の会話形式で理解しよう

生徒

「C言語の関数って何ですか?難しそうなイメージがあります…。」

先生

「関数は、プログラムの中で使える小さな道具みたいなものです。ひとつの仕事をまとめて実行できます。」

生徒

「道具ってどういうことですか?」

先生

「例えば、電卓の“足し算ボタン”は押すだけで計算できますよね。C言語でも同じように、決まった処理を関数にまとめて呼び出せます。」

1. 関数とは?

1. 関数とは?
1. 関数とは?

C言語の関数とは、ひとつの処理をまとめて名前を付けたものです。 プログラムの中で何度も使う処理を関数にしておくと、同じ命令を何度も書かずに済み、 コード全体がすっきりして読みやすくなります。 初心者のうちは、長いプログラムを見るだけで混乱しがちですが、 関数を使うことで「何をしているプログラムなのか」を整理して考えられるようになります。

関数は「入力を受け取る」「中で処理する」「必要なら結果を返す」という流れを持っています。 これは日常生活で言えば、自動販売機や電子レンジのようなものです。 ボタンを押すと、内部で決まった動きが行われ、結果が出てきます。 C言語の関数も同じで、呼び出すだけで中の処理が実行されます。


#include <stdio.h>

void greet(void)
{
    printf("こんにちは\n");
}

int main(void)
{
    greet();
    greet();
    return 0;
}

このサンプルでは、greetという関数を作り、挨拶を表示しています。 greet();と書くだけで同じ表示を何度でも実行できるため、 同じ処理を繰り返す場合にとても便利です。 このように関数は、処理を部品のようにまとめて使える仕組みであり、 C言語を理解するうえで最初に身に付けたい大切な考え方です。

2. 関数の定義とは?

2. 関数の定義とは?
2. 関数の定義とは?

関数を使うには、まず「関数の定義」を書きます。関数の定義とは、これから作る道具に 名前を付けて、「どんな材料(入力)を受け取り」「どんな結果(戻り値)を返すか」 そして「中でどんな処理をするか」をまとめて決めることです。 レシピに例えるなら、料理名が関数名、材料が入力、完成品が戻り値、作り方が処理の中身になります。 最初に定義しておくと、同じ処理をいろいろな場所から呼び出して使えるようになります。


int add(int a, int b)
{
    return a + b;
}

この例では、addという名前の関数を定義しています。 丸かっこの中のint aint bは、関数が受け取る二つの整数です。 そしてreturn a + b;で合計を返すので、「足し算をする道具」ができたと考えると分かりやすいです。 関数の定義は、基本的に戻り値の型関数名入力処理の順で書く、 という形を覚えるとC言語の関数がぐっと読みやすくなります。


void sayHello(void)
{
    printf("はじめまして\n");
}

こちらは「表示するだけ」の関数の定義例です。結果を返さない場合はvoidを使い、 入力がないときは(void)と書くと「何も受け取らない関数」だと明確になります。 このように、関数の定義を読めるようになると、C言語のプログラム全体の流れも追いやすくなります。

3. 関数の呼び出しとは?

3. 関数の呼び出しとは?
3. 関数の呼び出しとは?

関数は定義しただけでは動きません。実際に使うには「関数の呼び出し」を行います。 呼び出しとは、作っておいた関数名を書いて、必要なら値を渡し、その処理を実行してもらうことです。 イメージとしては、道具箱に入っている道具を取り出して使う感じです。 C言語では、関数名(値);の形で書くのが基本になります。

また、関数が計算結果などを返す場合は、その戻ってきた値を変数に入れて利用できます。 こうしておくと、同じ処理を何度でも呼び出せるので、プログラムの中身を短く保ちやすくなります。 初心者のうちは「呼び出したら、関数の中へ一度移動して処理をして、終わったら元の場所に戻ってくる」 という流れを頭の中で追うと理解しやすいです。


int result;
result = add(3, 5);
printf("%d\n", result);

add(3, 5)の部分が関数の呼び出しです。ここで35が引数として渡され、 関数の中で足し算が行われ、合計の値が戻り値として返ってきます。 そして、その結果をresultに入れてから表示しています。 「計算する担当は関数、結果を受け取る担当は変数」という役割分担を意識すると、 C言語の関数呼び出しがぐっと分かりやすくなります。


printf("%d\n", add(10, 20));

もう少し短く書くなら、このように呼び出しの結果をそのままprintfへ渡す方法もあります。 まずは分かりやすい形で変数に受け取り、慣れてきたら短い書き方にも挑戦すると、 関数の使い方が自然に身に付いていきます。

4. main関数との関係

4. main関数との関係
4. main関数との関係

C言語のプログラムは、必ずmain関数からスタートします。main関数は「プログラムの入口」です。その中で他の関数を呼び出すことで、動きを作っていきます。


#include <stdio.h>

int add(int a, int b)
{
    return a + b;
}

int main(void)
{
    int answer;
    answer = add(10, 20);
    printf("結果:%d\n", answer);
    return 0;
}

5. 戻り値とは?

5. 戻り値とは?
5. 戻り値とは?

戻り値とは、関数が処理した結果をmain関数などへ戻す値のことです。関数定義の先頭に書く型が戻り値の型になります。戻り値がない場合は、voidと書きます。


void hello()
{
    printf("こんにちは\n");
}

この関数は、文字を表示するだけなので結果を返しません。そのため、voidが使われます。

6. 引数とは?

6. 引数とは?
6. 引数とは?

引数とは、関数へ渡す値のことです。「材料」と考えると理解しやすいです。ケーキを作るなら、小麦粉や砂糖などが必要です。同じように、関数に必要なデータを引数として渡します。


int square(int x)
{
    return x * x;
}

square(5)のように使うと、5がxに入り、処理されて25が返ります。

7. 複数の関数を使ったプログラム例

7. 複数の関数を使ったプログラム例
7. 複数の関数を使ったプログラム例

複数の関数を作ると、さらにプログラムが整理されます。処理を小分けにでき、初心者でも読みやすい構造を作れます。


#include <stdio.h>

void hello()
{
    printf("ようこそC言語へ\n");
}

int add(int a, int b)
{
    return a + b;
}

int main(void)
{
    hello();
    int n = add(4, 6);
    printf("%d\n", n);
    return 0;
}

8. 同じ処理を何度も書かないための関数

8. 同じ処理を何度も書かないための関数
8. 同じ処理を何度も書かないための関数

関数を使う最大の理由は、同じ処理を何度も書かなくてよくなることです。例えば、挨拶を10回表示するとします。関数なしで書くと同じ行が並んで読みづらくなりますが、関数でまとめれば非常にすっきりします。メンテナンスも簡単で、修正が必要なときは関数の中身を直すだけで済みます。

9. 関数名の付け方のコツ

9. 関数名の付け方のコツ
9. 関数名の付け方のコツ

関数名は役割が分かる名前にするのがポイントです。例えば、足し算ならadd、平均ならaverage、表示だけならprintなど、動きを連想できる名前にすると読みやすいコードになります。初心者がつまずきやすいポイントですが、名前の付け方はとても大切な技術です。

10. 関数を使うとプログラムが整理される

10. 関数を使うとプログラムが整理される
10. 関数を使うとプログラムが整理される

関数を使うことで、プログラムが短くなり、見た目も綺麗になります。部品を作って組み立てるように設計できるので、複雑なアプリケーションも理解しやすくなります。C言語の基本構文の中でも、関数は特に重要な部分です。

カテゴリの一覧へ
新着記事
New1
C++
C++におけるSTL(標準テンプレートライブラリ)の役割とは?初心者でもわかる使い方と魅力
New2
C言語
C言語プロジェクトをGitHubで公開する方法を初心者向けに解説!パソコンが苦手でもわかる手順
New3
C++
C++の論理型boolを完全解説!初心者でもわかる条件式での使い方と考え方
New4
Rust
RustをWindowsにインストールする手順と注意点を完全ガイド!初心者向けセットアップ方法
人気記事
No.1
Java&Spring記事人気No1
C言語
C言語をオンラインで実行できる便利なコンパイラサービスまとめ【初心者向け】
No.2
Java&Spring記事人気No2
C++
C++の主要な実装をわかりやすく解説!GCC・Clang・MSVCの違いと特徴
No.3
Java&Spring記事人気No3
C言語
C言語の関数定義と呼び出しを完全ガイド!初心者でも分かる基本の書き方
No.4
Java&Spring記事人気No4
C言語
Makefile入門:C言語プロジェクトを自動ビルドしよう!初心者でも分かる仕組みと使い方
No.5
Java&Spring記事人気No5
C言語
C言語の開発環境をWindowsに構築する方法【Visual Studio編】
No.6
Java&Spring記事人気No6
C言語
C言語を学ぶ初心者におすすめの環境構築手順【2025年版】
No.7
Java&Spring記事人気No7
C言語
C言語の列挙型(enum)の使い方を完全ガイド!初心者でもわかる基本操作
No.8
Java&Spring記事人気No8
C言語
Visual Studio CodeでC言語を実行する方法【拡張機能の設定と実行手順】