コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

Hなファイルをつくる

あぁ~めっちゃむらむらするわ

さて、君たちはこんな釣りタイトルにフォイフォイ釣られてしまったのですね。よろしい。では、Hなファイルつくりをやっていきましょう。まずはHなファイルとは何かについて軽く触れなければなるまい。Hなファイルとはヘッダファイルのことです。拡張子がHなので僕はこれのことをHなファイルと呼んでいます。

ヘッダファイル(英: Header file)は、特にC言語C++でのプログラミングで使われるファイルであり、一般にソースコード形式をしていて、コンパイラが別のソースファイルの一部として自動的に展開して使用する。一般にヘッダファイルは、ソースファイルの先頭部分に書かれたディレクティブによってインクルード(その場に内容を展開)される。インクルードファイル(英: Include file)とも。

まあ、何言ってるのかって感じですけどC言語とかやるときにでてくるおまじない#include <stdio.h>のことです。アレをつくります。あのおまじないが何かと言うと色んな命令が入っているパッケージみたいなやつです。今日はそのおまじないを自作します。

参考
標準Cライブラリ - Wikipedia



つくるお

ヘッダーに実装を直書きするのは悪手なんですけど、まあ今回Hなファイル作れればいいやってことでやっていきます。……と思ってIDE使って宣言したら実装部分の補完機能がついてたので宣言と実装を分けることにします。

実装と言うことでなんか動くものを作らないといけませんが、なんも思いつかなかったので入力された感度を3000倍にする処理を作った(※クソコード)。
宣言.h

#ifndef TEST_H
#define TEST_H
extern int muramura;
int htest(int);
#endif

#ifndefを利用することで宣言の重複避けが効くらしい。それと別にココに変数宣言する必要はなかったんだけど、extern使ってやらないと変数が重複するという情報もキャッチしたので変数もついでに書いてみた。


実装.c

#include "test.h"
int muramura = 3000;
int htest(int hosei)
{
	return muramura*hosei;
}

特に面白みのない処理。


メイン.c

#include <stdio.h>
#include "test.h"
int main(void)
{
	printf("あなたの感度を%d倍にしました\n", htest(1));
	return 0;
}

実行結果

あなたの感度を3000倍にしました

処理が糞過ぎる……。まあ、アレですよ。こうやって少しずつ.hファイルを育てていって、最終的にものすごくHなファイルをつくれるようになっていくって考えたら……。それはもう……、夢があって……。


はい……、と言った感じにヘッダファイルつくれるらしいです。