- ベストアンサー
C言語 インクルードとかって一体何者?
最近C言語を始めた初心者です。 インクルードの意味がいまいちよくわかりません。 調べてみると・・・ 「含める」という意味の英単語。何かを「外部から呼び出して一つにまとめる」という意味で使われる。プログラミングの世界では、ソースファイルの先頭などで、別のソースファイルなどを読み込んで一つにまとめてくれる言語処理系の機能のことを指す。 という内容がでてくるのですが、よくわかりません。 ソースファイルの先頭などで、別のソースファイルを読み込んで・・ とありますが、別のソースファイルって一体何者? 外部ってどこ? って感じです。 気にしなくていいといわれたんですが、気になって仕方がないです。 こんな感じで・・・↓ #include <stdio.h> int main(void) { printf("abcdef"); } stdio.hって一体何者ですか?どういう役割があるんですか? 詳しく教えていただけれ幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
簡単に書けば、 「別にあるstdio.hというファイルを最初に読み込んだ上で以下のプログラムを実行する」 ということです。 どういった環境でC言語を行っているかわかりませんが、お使いのPCのどこかにファイルとして存在していると思います。 例文でいえば、printfというのは表示に使う「用意された関数」なわけですが、 それは単に「printfという文字があれば表示を行う」とC言語が判断している訳ではなく、 「printfという文字があった時どういう処理をするか、という内容がstdio.hの中に記述してある」 ということなわけです。 なので、しっかりincludeしないとprintfは使えません。 こんなところでご理解いただけましたか?
その他の回答 (1)
- Yanch
- ベストアンサー率50% (114/225)
インクルードの意味は、C言語を始めたでしたら、取り合えずおいとって良いと思います。 >stdio.hって一体何者ですか?どういう役割があるんですか? こちらの方を先に解決しておいた方が良さそうです。 C言語は手続き型言語と言われていて、言語の機能(関数)などを、拡張して記述 する事が出来る言語です。 stdio.hと言うのは、「標準入出力」関係の機能を使いたい時に、インクルードします。 例えば、「printf()」などです。 stdio.hをインクルードすると、C言語の機能に、「標準入出力」関係の機能が、 拡張されますので、「printf()」などが使用可能になります。 stdio.hの中身が、どのように記述されているかとかは、特に決まった仕様がある訳ではありませんが、 stdio.hの使用方法に関しては、C言語の関数リファレンスなどを参照すると、 良いでしょう。 話をインクルードに戻します。 「~~~.h」などのヘッダファイル (C言語ではインクルードする関数を使用する宣言などが含まれるファイルをヘッダファイルと言う) を自分で作成する様になるまでは、 #include <stdio.h> の文を、printf()などの関数を使うためのおまじないなんだ。 と思っておいても問題ないです。 もし、自分でヘッダファイルを作成するなら、そのヘッダファイルの書き方を 勉強すると良いです。 ヘッダファイルの中身は、関数の宣言などで構成されています。 >とありますが、別のソースファイルって一体何者? >外部ってどこ? こちらも回答しておくと、 C言語の標準的なヘッダファイル(例えばstdio.h)などは、どこに存在しているか などは、特に仕様として取り決めはありません。 ですから、stdio.hを使う人は気にしなくて良い事になっています。 実際には、使用するC言語の開発環境ごとに実装のされ方が違っています。 stdio.h以外のヘッダファイルに付いてもC言語の関数リファレンスなどを参照すると、 乗っているはずですから、必要に応じて調べるとよいです。
お礼
何となく理解できました。 詳しい回答ありがとうございました!!
お礼
わかりやすい説明ありがとうございます。 もっと勉強していこうと思います。また何かあったらお願いします。