ここから本文です

C言語のファイル分割について質問です。 環境はvisual studio 2017です。

mum********さん

2018/12/2212:17:20

C言語のファイル分割について質問です。
環境はvisual studio 2017です。

http://c-lang.sevendays-study.com/day7.html
でのファイル分割のソースファイルを以下のように変更しても正常にビルドし結果も
大丈夫でした。リンク先の分け方は面倒なだけでどこら辺に利点があるのかよくわかりません。
また、したのソースコードがプロトタイプ宣言(avg関数)
なしで実行できている理由がよくわかりません。
回答お願いします。

******************************
//main.c

#include <stdio.h>


int main() {
double d1, d2, d3;
double a = 1.2, b = 3.4, c = 2.7;
// 同じ計算が3回(関数を呼び出して計算)
d1 = avg(a, b);
d2 = avg(4.1, 5.7);
d3 = avg(c, 2.8);
printf("d1 = %f,d2 = %f,d3 = %f¥n", d1, d2, d3);

return 0;
}

************************
//calc.c

#include <stdio.h>


// 平均値を求める関数
double avg(double l, double m) {
// 引数l,mの平均値を求め、rに代入する。
double r = (l + m) / 2.0;
return r;
}

閲覧数:
38
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

nor********さん

編集あり2018/12/2212:49:27

質問の例だとあまりメリットはないかもしれませんが、
> // 平均値を求める関数
が配列について先頭アドレスと要素数を引数に取る汎用性があるものなどはコンパイルしてオブジェクトファイルにしてリンクするようにすると複数のプログラムから利用可能になります。

あとチームで開発するような場合機能単位ごとに分けることで、各メンバーがコード編集出来ます。
コンパイル単位でスタブ、ドライバ(コントローラ)を利用してテストするなどしないと開発に要する時間が大きくなりますし、一つの巨大なソースプログラムを修正のたびにコンパイルするよりは修正したコンパイル単位にコンパイルしてリンクしたほうが効率的です。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる