【独学C言語】関数とは

※この記事は「2020年12月17日」に更新しました。

今回は、関数について。

前回は、文字列と配列について、解説しました。

【独学C言語】文字列と配列

【独学C言語】文字列と配列

2020年4月24日

数学でも習いますが、C言語の関数もそれに近いものがあります。

例えば、食材を入れると料理が出てくるような機械のような存在です。

実際に見ていきましょう。

関数とは

関数とは、処理のかたまりのようなものです。

引数を渡すと結果として戻り値を返すこともできます。

先程の例でいうと、食材が引数で料理が戻り値です。

printf や scanf も関数です。



関数の作り方

自分で作成する関数をユーザー定義関数(以下、自作関数)といいます。

C言語で自作関数を利用するためには以下の記述が必要になります。

  • 関数プロトタイプ宣言
  • 関数の呼び出し
  • 関数の定義

それぞれ順番に見ていきます。

関数プロトタイプ宣言

コンパイラが関数を判断するためにプロトタイプ宣言というものを記述します。

返却値のデータ型 関数名(引数のデータ型);

関数の呼び出し

関数の呼び出しです。

呼び出すとその関数に制御が移ります。

関数の定義

関数の定義です。

返却値のデータ型 関数名(引数のデータ型 仮引数)
{
    処理
}

サンプルプログラム【C言語】

関数を理解するためのサンプルプログラムです。

sample1.c というソースファイルを作成します。

#include <stdio.h>

/* 関数プロトタイプ宣言 */
void message(void);

int main(void)
{
    printf("\n");

/* 関数の呼び出し */
    message();

    printf("\n");

    return 0;
}

/* 関数の定義 */
void message(void)
{
    printf("Hello World!");
}

引数と返却値のない関数のサンプルプログラムです。

実行結果は以下の通りです。

関数

次に sample2.c というソースファイルを作成します。

#include <stdio.h>

int calc(int, int);

int main(void)
{
    int number1;
    int number2;
    int answer;

    printf("\n");

    printf("Input Number1 : ");
    scanf("%d", &number1);
    printf("Input Number2 : ");
    scanf("%d", &number2);

    answer = calc(number1, number2);

    printf("\n");

    printf("%d + %d = %d", number1, number2, answer);

    printf("\n\n");

    return 0;
}

int calc(int calc_number1, int calc_number2)
{
    int value;

    value = calc_number1 + calc_number2;

    return(value);
}

引数と返却値がある関数のサンプルプログラムです。

ユーザーに int型の整数を 2回入力してもらい、その和を求めるプログラムです。

実行結果は以下の通りです。

関数

独学C言語の記事について【おまけ】

タカフミブログの独学C言語シリーズは、C言語を独学するということを目的に記事を書いています。

他の記事に興味がある方は以下をご参照下さい。

C言語に関する記事一覧

C言語は、古典的なイメージがある方もいるかもしれませんが、他の多くのプログラミング言語のベースになっています。

実際に本格的なソフトを開発するとなるとなかなか大変ですが、とにかくハードウェアのリソースが少なくても高速に動くのが最大のメリットです。

プログラマーや SE(システムエンジニア)を目指す方は一度お試し下さい。

最後に【関数について】

いかがでしょうか。

関数について、紹介しました。

次回は、変数のスコープについて、解説します。

【独学C言語】変数のスコープ

【独学C言語】変数のスコープ

2020年4月29日

特定の処理をまとめたものなので、何回も呼び出す場合は便利です。

main関数だけでなく、自作関数を使って、処理を分割した方が効率が良い場合もあります。

C言語のプログラムは、関数の集合体なので、大切な考え方です。

しっかり理解しておきましょう。