第8章 C言語の関数 ~ 関数の作り方とモジュール分け ~

 何も、関数は繰り返し使われる処理を、まとめるだけではありません。

 大きなプログラムになると、何千行、何万行にもなってきます。 これを main 関数の中だけに記述されると、 とてもわかりづらいプログラムとなってしまいます。 そこで大事なのが、プログラムを機能ごとの小さな関数に分割することです。

 ここで、車を作るプログラムをイメージしてください。 ごくごく簡単に機能を挙げるとすると、以下のようになると思います。

  エンジン機能
  ・ピストン
  ・スパークプラグ

  ボディ機能
  ・ボディ
  ・ミラー
  ・窓

  車輪機能
  ・タイヤ
  ・ホイール

 これを、それぞれ関数にしてプログラムを作れれば、良いプログラムと言えるでしょう。 このプログラムを、サンルーフ付きの車を作るプログラムに変更する場合も、 ボディ機能の部分だけを気にすればよいのです。

 もし、main関数だけで記述されていたら、 全体に目を通して、ボディ機能の記述を探す必要が出てきます。

 このような機能ごとに関数にして分けることを、モジュール分けといいます。 みなさんには、初めからモジュール分けを心がけて欲しいのです。

 以上です。

 さらに時間が余った人は、関数に文字列を渡すプログラムを打ち込んでみてください。

— リスト21``````–

#include <stdio.h>

/**
 * 関数プロトタイプ宣言
 */
int goukeiPrint(char *item, int tanka, int num);

void main() {
  int tanka;
  int num;
  int sum=0;

  tanka = 2000;
  num = 4;

  sum = sum + goukeiPrint("シャンプー", tanka, num);

  tanka = 1500;
  num = 5;

  sum = sum + goukeiPrint("石鹸", tanka, num);

  tanka = 3000;
  num = 2;

  sum += goukeiPrint("洗剤", tanka, num);
  printf("総計は、%d円です。\n", sum);
}

/**
 * 単価と個数から、合計を計算して表示する関数
 * ・計算には消費税5%分を含める
 */
int goukeiPrint(char *item, int tanka, int num) {
  int sum;

  sum = tanka * num * 105 / 100;
  printf("%sの合計は、%d円です。\n", item, sum);

  return sum;
}

< 前のページへ
お問い合わせ
  • ようかん
  • SG Labs(エスジー ラボ)
  • ITERACY
  • RiceLog(ライスログ)
  • Salesforce導入コンサルティング
  • SES営業向け用語講座

Pagetop