~はじめてのC言語~ 関数について

C言語

C言語における関数とは

関数とは簡単に説明すると「この処理をしてください。」と指示するものです。
例えば、VisualStudioでC言語でプロジェクトを作成すると、

int main()
{
    // ここに処理を書きます。
}

このような”main()”というものが自動生成されますが、これも関数と呼びます。
C言語では、このmain関数から処理が開始されます。
他の関数を呼び出して使用するのも、このmain関数から呼び出すことができます。

関数内の”return”の意味

“return”とは関数内で使うとその場所で、その関数が終了します。
もし”戻り値”を返すのであれば、”return”の文言と一緒に指定して返すことができます。
詳しくは、特集している記事がありますのでよかったら参考にしてください。

~はじめてのC言語~ 戻り値と引数について
C言語における”戻り値”と”引数”について初心者の方でもわかりやすいように、専門用語をできるだけ使わず解説しました。C言語の入門として学習の参考にしてください。

関数の作り方

先ほど説明した、main関数はもともとある関数ですが、関数は自分で作ることも可能です。
書き方はmain関数と同じように書いていきます。

今回はサンプルとして、2つの数字を引数として渡すと、その2つの数値の平均値を計算してくれるコードを作ってみましょう。

自分で関数を作るとなると
プログラミングやっている感が出て、やる気出ますね!

int main()
{
    int number1 = 35;
    int number2 = 13;
    int average = 0;
    // 2つの数値の平均値を計算してくれる関数の呼び出し
    average = AverageCalculation(number1, number2);

    // printf関数で出力
    printf(average);
    return 0;
}
// 自作した関数の宣言
int AverageCalculation(int number1, int number2)
{
    answer = (number1 + number2) / 2;
    return answer;
}   

こんな感じになります。
平均したい値はmain関数で用意してやって”AverageCalculation”関数で計算して、答えを戻り値として返しています。

ちなみに、今回は自分で作った関数の名前を「数値の平均の計算をする関数」ということで「AverageCalculation」と名付けましたが、この名前も変数と同じでわかりやすく何をしている関数なのかが第三者が見てもわかるようにできていれば、好きに名前を付けてもOKです。
また、自作した関数を14行目のように書くことを「関数の宣言」といいます。

関数は宣言するだけでは「ただあるだけ」になってしまうので、必ず使いたい場所(今回は7行目)で関数名を指定して呼び出してあげましょう。

なるほど。全体の流れは、
「関数を作って宣言し、その処理をしたいときに呼び出す。」

ですね!

その通りです。
引数や戻り値が必要な時はその記述も忘れずに!ですよ♪

今ふと思ったのですが、

戻り値が必要ないときは省略してもいいんですか?

いい所に気が付きましたね!
次はそのことを解説しましょう。

関数に引数や戻り値が必要ないとき

プログラミングの勉強を進めていくと、関数に戻り値や引数が必要ないときも勿論あると思います。そんな時にどう書けばいいのか順番に解説していきます。

引数が必要ないとき

基本的に引数がいらないときは、書かなければOKです。
ですが、他の人がコードを見たときにあえて引数がないことを示すために「引数なし」の記述方法もあります。
実際に見ていきましょう。

// こちらが記述しない場合
int TestMethode1()
{
    printf("引数なしの関数です。");
    return 0;
}

// 記述する場合
int TestMethode2(void)
{
    printf("引数なしの関数です。");
    return 0;
}

サンプルコードの上の関数(int TestMethde1)が、「引数なし」を何も書かずに表しているパターンで、下の関数(int TestMethde2)が記述しているパターンです。

記述している側の関数(int TestMethde2)では、
本来引数を書くところに「void」と書いています。
これが「引数はありませんよ。」という意味になるのです。

では、その関数を呼び出すときにも、
引数を書くところには”void“と書くのですか?

そこも実は書いても書かなくともOKなんです。
でも、実際は両方合わせたほうが見やすいので、関数宣言で”void“と書いたら呼び出すときも”void“と書いてあげましょう。

戻り値が必要ないとき

次に、戻り値が必要ないときの書き方についてですが、これも先ほどと似ていますのでサンプルコードと一緒に見ていきましょう。

// main 関数
int main()
{
    TestMethode();
    return 0;
}

// 戻り値がない場合の関数
void TestMethode()
{
    printf(" 戻り値がなしの関数です。");
}

このように戻り値の場合も”void“を使います。
また、戻り値がないということは何も値を返さないので、”return“を書く必要もありません。

この場合は、
関数の呼び出し側では戻り値を受ける必要がないので、
ただ呼び出すだけでいいんですね!

そういうことです。この辺りは簡単だと思います。
戻り値や引数がいらないときは”void“を使うと覚えておいてくださいね♪

まとめ

今回は、C言語における関数についてを勉強しました。
同じ意味でも書き方が異なったり、引数や戻り値がないパターンがあったりと、すこし混乱しそうになりますが、

  1. 関数の宣言
  2. 戻り値の有無
  3. 引数の有無
  4. 関数の呼び出し

この4点がしっかり理解できれば関数について基本は完璧だと思うので、頑張って覚えましょう♪

~はじめてのC言語~ 戻り値と引数について
C言語における”戻り値”と”引数”について初心者の方でもわかりやすいように、専門用語をできるだけ使わず解説しました。C言語の入門として学習の参考にしてください。

なにか質問があればお問い合わせフォームでお気軽にお問合せください。
可能な限りすぐにお返事します。
一流プログラマを目指して頑張りましょう!

コメント