!!! インタフェースの変更 モジュールの分担作成中には,インタフェースを変更せざるをえない事態も発生します. !! ヘッダファイルを修正した場合 そのヘッダファイルをインクルードしている,あるいはAPIなどの情報を実際に使用しているソースプログラムでは,'''再コンパイルの必要'''があります. * 古いヘッダファイルでコンパイルされたモジュール(オブジェクト・ファイル)をそのまま使うとリンクエラーが出たり,実行時エラーになったりします. この作業を忘れないためには,'''Makefileに,依存関係をちゃんと記述してください'''. もちろん,変更内容は,必ず他のメンバーに知らせてください.また,ヘッダファイルには'''変更を書き残して'''ください. !!! インタフェース変更に関する注意点 !! 関数名の変更 * 古い名前が残っている場合,リンク時に発見できます. * 要参照モジュールのソース変更,要再コンパイル. !! 関数戻り値型の変更 * モジュール間での食い違いが発見しにくい, * 戻り値の不整合により,実行結果がおかしくなる可能性があります. * 要再コンパイル !! 引数名の変更 * 他モジュールには特に影響しません. !! 引数型の変更 * 他モジュールへの影響があります.しかも,見つけにくいです. * 実引数の不整合により,実行結果がおかしくなる可能性があります. * 要再コンパイル !! 構造体フィールドの追加 * 食い違いは発見できません. * データ構造が食い違うため,実行結果がおかしくなる可能性があります. * 要再コンパイル !! 構造体フィールド名や型の変更 * 参照モジュールのコンパイル時に発見することが可能です. * 要参照モジュールのソース変更,再コンパイル. !! 変数名の変更 * リンク時に発見することが可能です. * 要参照モジュールのソース変更,再コンパイル. !! #define 値の変更