C言語編 目次

 関数設計

 

・関数名の命名規則
・プログラミングに出る!英単語

 ポインタ

 

・データ型とポインタ

 データ型

 

・char *とconst char *は違う
・符号付きと符号なし

 演算子

 

・三項演算子とデータ型の問題

 制御構文

 

・条件式で代入する
・三項演算子を使ったswitch

 構造体

 

・構造体のサイズとアライメント
・構造体メンバのサイズを知る

 配列

 

・配列使用時の注意
・配列の要素数を知る

 メモリ管理

 

・メモリスタック
・動的メモリ確保とメモリリーク

 モジュール設計

 

・モジュール分割
・汎用モジュールとアプリ依存モジュール

 パフォーマンス
  徹底チューニング

 


・どんな処理に時間がかかるのか
・ファイル入出力の効率化
・アルゴリズムを考える1
・アルゴリズムを考える2

 プリプロセッサの便利機能


・2重インクルード防止

 


トップページへ戻る

汎用モジュールとアプリ依存モジュール

 前回はモジュール分割の基本的な考え方を説明しました。今回はもう少しこの考え方を推し進めていきましょう。

 ある程度大きなプログラムを作るときは、プログラムをモジュールに分割する必要がありますが、このモジュール群は、大別すると2つのタイプに分けることができます。それは汎用的に使えるモジュールと、そのアプリケーションに特有のモジュールです。

 汎用的に使えるモジュールは、他のアプリケーションに持っていっても、加工なしにそのまま使えるモジュールです。アプリケーションに特有のモジュールは、そのアプリケーションに特有のデータ構造や、プログラムロジックが含まれているモジュールです。

 モジュールを設計するときには、できるだけ汎用的なモジュールを多く作るようにします。それはもちろん、再利用性を考えてのことです。

 気をつけなければいけないのは、紙一重の差でモジュールが汎用モジュールにも、アプリ依存モジュールにもなるということです。汎用的に作ったつもりでも、そのアプリでしか関係しないパラメータが1つでも入ってしまったら、それはアプリ依存のモジュールになってしまいます。

 逆に言えば、少し気をつけてモジュールの設計をしていけば、汎用的に使える部分はたくさん抽出できます。

 モジュールを設計するときは、そのモジュールが仕様を満たすかということだけでなく、その仕様が今回だけのものなのか、それとも他のプログラムでも全く同じように使えるものなのかという点を考慮しないといけないということですね。