C言語でのインクルードの使い方は何ですか?

烟雨青岚
リリース: 2020-06-15 15:45:55
オリジナル
17195 人が閲覧しました

C言語でのインクルードの使い方は何ですか?

#C 言語の include の使い方は何ですか?

#1. #include コマンドの概要

#include コマンドは前処理コマンドの一種で、他のソースコードを次のソースコードに変換することができます。コンテンツは指定された場所に挿入されます。コンテンツは、特定の条件下でのみコンパイルされるプログラム コードの特定の部分を識別できます。

は、同様の識別子関数を持つマクロを定義できます。コンパイル中に、プリプロセッサは他のテキスト置換を使用します。マクロ。

2. ヘッダー ファイルの内容を挿入

##include コマンドは、指定されたヘッダー ファイルの内容を対応する場所に挿入するようにプリプロセッサに指示します。プリプロセッサコマンドの。挿入するヘッダー ファイルを指定するには 2 つの方法があります。

#include <文件名>
#include "文件名"
ログイン後にコピー

標準ライブラリのヘッダー ファイルまたは実装バージョンによって提供されるヘッダー ファイルをインクルードする必要がある場合は、最初の形式を使用する必要があります。次の例に示すように:

#include <math.h>               // 一些数学函数的原型,以及相关的类型和宏
ログイン後にコピー

プログラム用に開発されたソース ファイルを含める必要がある場合は、2 番目の形式を使用する必要があります。 #include コマンドを使用して挿入されたファイルには、通常、.h ファイル拡張子が付けられ、関数プロトタイプ、マクロ定義、型定義が含まれます。

これらの定義は、#include コマンドが使用されている限り、どのソース ファイルでも使用できます。次の例に示すように:

#include "myproject.h" // 現在のプロジェクトで使用される関数プロトタイプ、型定義、およびマクロ

#include コマンドでマクロを使用できます。マクロを使用する場合、マクロの置換によって正しい #include コマンドが生成されるようにする必要があります。

例 1 は、そのような #include コマンドを示しています。

[例 1] #include コマンド内のマクロ

#ifdef        _DEBUG_
  #define       MY_HEADER       "myProject_dbg.h"
#else
  #define       MY_HEADER       "myProject.h"
#endif
#include        MY_HEADER
ログイン後にコピー

上記プログラムコードがプリプロセスに入ると、DEBUG マクロが定義されていれば、プリプロセッサの内容myProject_dbg.h の内容が挿入されます。定義されていない場合は、myProject.h の内容が挿入されます。

3. プリプロセッサがヘッダー ファイルを見つける方法

#include コマンドで指定されたファイルの検索パスは、指定された C 言語実装バージョンによって決まります。同時に、ファイル名で大文字と小文字が区別されるかどうかは実装バージョンによって決まります。コマンド内で山かっこ () を使用して指定されたファイルの場合、プリプロセッサは通常、特定のシステム パスを検索します。たとえば、Unix システムでは、パス /usr/local/include および /usr/include が検索されます。

コマンド内で二重引用符で指定されたファイル (「ファイル名」) の場合、プリプロセッサは通常、最初に現在のディレクトリを調べます。これは、プログラムの他のソース ファイルが含まれるディレクトリです。現在のディレクトリに見つからない場合、プリプロセッサはシステムのインクルード パスも検索します。ファイル名にはパスを含めることができます。ただし、ファイル名にパスが含まれている場合、プリプロセッサはそのディレクトリのみを検索します。

コンパイラ コマンド ライン オプションを使用するか、検索パスを環境変数 (通常は INCLUDE と呼ばれます) に追加することで、#include コマンドに独自の検索パスを指定することもできます。具体的な方法については、使用するコンパイラのドキュメントを参照してください。

4. ネストされた #include コマンド

#include コマンドはネストして使用できます。つまり、#include コマンドを通じてソース ファイル自体を挿入することができます。別の #include コマンドも含めます。プリプロセッサでは、最大 15 レベルのネストされたインクルードが可能です。

ヘッダー ファイルには別のヘッダー ファイルが含まれる場合があるため、同じファイルが複数回インクルードされる可能性があります。たとえば、ファイル myProject.h に次のコードが含まれているとします。

#include <stdio.h>
ログイン後にコピー

ソース ファイルに次の #include コマンドが含まれる場合、stdio.h は 2 回 (1 回は直接的に、もう 1 回は間接的に) インクルードされます。

#include <stdio.h>
#include "myProject.h"
ログイン後にコピー

ただし、条件付きコンパイル コマンドを使用すると、同じファイルを複数回インクルードすることを回避できます。例 2 ではこの手法を使用します。

[例 2] 複数のインクルードを避ける

#ifndef INCFILE_H_
#define INCFILE_H_
/* ...实际的头文件incfile.h的内容写在这里... */
#endif  /* INCFILE_H_ */
ログイン後にコピー

incfile.h を含むコマンドが初めて表示されるとき、INCFILE_H_ マクロは定義されていません。したがって、プリプロセッサは、INCFILE_H_ マクロの定義を含むコンテンツを #ifndef と #endif の間に挿入します。 incfile.h ファイルを埋め込んだ後、#ifndef 条件は false になり、プリプロセッサは #ifndef と #endif の間の内容を無視します。

推奨チュートリアル:「

C 言語

以上がC言語でのインクルードの使い方は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!