ヘッダファイルとはなんですか?


以下ウィキペディアより


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

ヘッダファイルには、サブルーチンや変数やその他の識別子の前方宣言が含まれていることが多い。複数のソースファイルで宣言する必要のある識別子を1つのヘッダファイルに置き、必要に応じて個々のソースファイルがそのヘッダファイルをインクルードする。

C言語やC++では、標準ライブラリ関数はヘッダファイルで宣言されている。詳しくは、標準Cライブラリと標準C++ライブラリを参照されたい。


ソーラー 「ヘッダファイル(英: Header file)は、


特にC言語やC++でのプログラミングで使われるファイルであり、

一般にソースコード形式をしていて・・・


このヘッダファイル(英: Header file)・・・


一般にソースコード形式をしているもの・・・


ソースコードか・・・


私たちがいままでみてきたプログラムの中では


<stdio.h>がヘッダファイルにあたるのではないかな?」


アレサ


「そうですね。<stdio.h>・・・


エディタにソースコードを記述する際


いつも


#include <stdio.h>から記述されています。


たびたび述べさせていただきますが


エディタ上にかかれたコンパイルする前の


人間にとってわかりやすい


プログラムはソースコードといわれています。


・・・000000000000011111・・・・・・」


ソーラー

「コンパイラが別のソースファイルの一部として


自動的に展開して使用する。


か・・・


おおっ なんて熱い説明だっっっ


コンパイラが別のソースファイルの一部として


自動的に展開して使用する。


理解わかりできそうで理解わかんな~いできない絶妙な表現!


微妙なところをついてくる。


私の想像力はかきたてられる~~~。


しびれる~~~~~!!!


流石はウィキペディア~~~~~!」



アレサ 「?????この説明はどういう意味なのでしょうか?


何かが語られているようですね


 000000110000・・・」


ソーラー

「この文章から推測すると


もしかしてヘッダファイルとは


なにかの便利なプログラムが格納されたファイルのことなんじゃないかな?


以下のプログラムでいうと

👇

#include <stdio.h>


int main(void)

{

printf( " Hello, World\n");

return 0;

}

👆

<stdio.h>がヘッダファイルにあたります。



コンパイルが行われると


ファイル<stdio.h>内に格納されたソースコードプログラムが


機械語プログラムに変換されます。


同時に


つづくソースコード


int main(void)

{

printf( " Hello, World\n");

return 0;

}


も機械語プログラムに変換されます。


そして


これら2つの機械語プログラムが


リンクされて(くっつけられて)


ひとつの機械語プログラム


になるということかな?」


アレサ「うううっ・・・・・・・」


涙をぬぐうアレサ。


ソーラー 「どっどうしたんだい?アレサ」


アレサ 「ううっ 


ここの私達の説明があまりにも下手すぎたので・・・


solarplexussさんが必死で手直しされているのです・・・ううっ」


ソーラー 「ああっ・・・なんて・・・なんてこと・・・ううっ」


泥のような涙をながすソーラー。


もう涙が、涙がとまらない。


しばらくして・・・



ソーラー 「あーすっきりしたあ。爽快、爽快~~(^^)/」


アレサ

「ほんと、すっきりしましたね。 私も気分爽快です。」


ソーラー 「はははっ るんるん


ようは  ヘッダファイルとはそのなかに


プログラムを格納していて


そのプログラム


をつかいたいときは


#include <stdio.h>のようにソースコードの先頭にヘッダファイルを


記述しておけばいいんだね」


ソーラー「ところで なんで <stdio.h>のなかにプログラムを


保存しているのかな?


とみんな思うよね


それに


何のプログラムがはいっているのかとも思うよね。」


アレサ「それは


<stdio.h>のなかには


なかなか長いプログラムが保存してあり


それをプログラムを作製するたびに記述しなくても済むように


<stdio.h>に保存してあるのです。


あとは


#include <stdio.h>をおこなうだけで


その長いプログラムを記述したことになります。


include インクルードとは英語で


           含む、組み込む


という意味があります


つまり

#include <stdio.h>とは


ヘッダファイル<stdio.h>をプログラムに組み込むという意味なのです」


ソーラー「便利な方法だね。」


アレサ「そうですね。ソーラーさん。


このように


ヘッダファイルの中に


プログラムを格納しておき


必要なとき自分のソースコードに引っ付けるという考え方


はとても有効な考え方ではないですか?


私はそうおもいます。ソーラーさんはどう思われます?」


ソーラー「うん、そうだね。僕もそう思う。


開発者の方々も


そうおもって


ヘッダファィルのような


プログラムが格納されているファイルをつくったんだろうね。


あとはこの


ヘッダファィル<stdio.h>に


どんなプログラムが保存してあるか


だよね」



アレサ


「はい、(^^)/


そうなんですの(´▽`*)


それに関しては


ウィキペディアには次のような記事があります


以下 ウィキペディアより


C言語やC++言語では、


標準ライブラリ関数は


ヘッダファイル内で宣言されている。


詳しくは、標準Cライブラリと標準C++ライブラリを参照されたい。


とかいてあります。


ソーラーさん、標準ライブラリ関数ってなんのことでしょうか?


標準Cライブラリと標準C++ライブラリを


ウィキペディアで参照してみませんか?


そこをみれば


ヘッダファィル<stdio.h>に


どんなプログラムが保存してあるか


わかるとおもわれますの」


ソーラー 「標準Cライブラリ・・・これは・・・


面白くなってきたね。アレサ。」


アレサ 「はい、0100011111」



  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る