ソフトウェア設計及び演習2017

インタフェースの変更

インタフェースの変更

モジュールの分担作成中には,インタフェースを変更せざるをえない事態も発生します.

ヘッダファイルを修正した場合

そのヘッダファイルをインクルードしている,あるいはAPIなどの情報を実際に使用しているソースプログラムでは,再コンパイルの必要があります.

  • 古いヘッダファイルでコンパイルされたモジュール(オブジェクト・ファイル)をそのまま使うとリンクエラーが出たり,実行時エラーになったりします.

この作業を忘れないためには,Makefileに,依存関係をちゃんと記述してください

もちろん,変更内容は,必ず他のメンバーに知らせてください.また,ヘッダファイルには変更を書き残してください.

インタフェース変更に関する注意点

関数名の変更

  • 古い名前が残っている場合,リンク時に発見できます.
  • 要参照モジュールのソース変更,要再コンパイル.

関数戻り値型の変更

  • モジュール間での食い違いが発見しにくい,
  • 戻り値の不整合により,実行結果がおかしくなる可能性があります.
  • 要再コンパイル

引数名の変更

  • 他モジュールには特に影響しません.

引数型の変更

  • 他モジュールへの影響があります.しかも,見つけにくいです.
  • 実引数の不整合により,実行結果がおかしくなる可能性があります.
  • 要再コンパイル

構造体フィールドの追加

  • 食い違いは発見できません.
  • データ構造が食い違うため,実行結果がおかしくなる可能性があります.
  • 要再コンパイル

構造体フィールド名や型の変更

  • 参照モジュールのコンパイル時に発見することが可能です.
  • 要参照モジュールのソース変更,再コンパイル.

変数名の変更

  • リンク時に発見することが可能です.
  • 要参照モジュールのソース変更,再コンパイル.


最終更新日:2017/04/03 09:14:15