ヘッダファイル
自作関数をmainとは別のファイルに分割する方法を調べた。あまりに基礎すぎてググってもなかなか見つからんかった(涙)。
やることはすごい単純で、intの加算と減算をするaddとsubtractをつくるだけ。
コード
calc.h
int add (int a, int b); int subtract (int a, int b);
calc.c
#include "calc.h" int add (int a, int b) { return a + b; } int subtract (int a, int b) { return a - b; }
main.c
#include <stdio.h> #include "calc.h" int main () { int i; i = add(1,2); printf("%d\n", i); i = subtract(3,1); printf("%d\n", i); }
コンパイル&実行
kotaro@mac:~/Dev/Introduction-to-C/chapter5> cc hello_my_header.c calc.c -o hello_my_header.out; ./hello_my_header.out 3 2
mainとcalc.hの実装であるcalc.cの両方を指定するのがミソ(キホン中のキホンなんだろうけどさ)
インクルードガード
1つのヘッダファイルを複数の箇所からインクルードしてしまうとコンパイルエラーになってしまうので、ifndef/define/endifでガードしたほうがいいとのこと。
訂正版calc.h
#ifndef CALC_H #define CALC_H int add (int a, int b); int subtract (int a, int b); #endif