- どんな関数が定義されているかを宣言するプロトタイプ宣言:hoge.h
- 宣言した関数の処理が書かれているファイル:hoge.c
- hoge.hに宣言されていてhoge.cに書かれている関数を使う別のソースファイル:my.cでは、hoge.hに宣言されている関数を使います、と冒頭で言っておく(コンパイラが混乱しないため)
- 参考:こちら
- やってみる
- main()を含むソースファイル myLE.c
- myLE.cのなかではstdio.hを使う
- myLE.cのなかでは自作関数mylog(),myexp()を使う
- この2関数はそれぞれmylog.c,myexp.cソースファイルに書かれている
- この2関数のプロトタイプをmylogexp.hファイルで宣言しておく
- mylog.c,myexp.cのソースはmath.hをインクルードする必要がある
- そんな中身
double mylog(double x);
double myexp(double x);
# include <math.h>
double mylog(double x){
return(log(x));
}
# include <math.h>
double myexp(double x){
return(exp(x));
}
# include <stdio.h>
# include "mylogexp.h"
main(){
double x,y,z;
x = 1;
y = mylog(x);
z = myexp(y);
printf("%f\n",z);
}
-
- 実行
- myLE.c内部で与えた変数x=1を対数にして指数にしているから結局、初めに与えたxの値が表示されるはず
ryamada@CFS10 ~
$ gcc myLE.c mylog.c myexp.c -o myLEtest
ryamada@CFS10 ~
$ ./myLEtest.exe
1.000000
ryamada@CFS10 ~