検索
ホームページバックエンド開発C#.Net チュートリアルC言語でのインクルードの使い方は何ですか?

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 サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
C#.NET開発:始めるための初心者向けガイドC#.NET開発:始めるための初心者向けガイドApr 18, 2025 am 12:17 AM

C#.NET開発を開始するには、次のことが必要です。1。C#の基本的な知識と.NETフレームワークのコア概念を理解する。 2。変数、データ型、制御構造、関数、クラスの基本概念をマスターします。 3。LINQや非同期プログラミングなど、C#の高度な機能を学習します。 4.一般的なエラーのためのデバッグテクニックとパフォーマンス最適化方法に精通してください。これらの手順を使用すると、C#.NETの世界に徐々に浸透し、効率的なアプリケーションを書き込むことができます。

C#と.NET:2つの関係を理解し​​ますC#と.NET:2つの関係を理解し​​ますApr 17, 2025 am 12:07 AM

C#と.NETの関係は切り離せませんが、同じものではありません。 C#はプログラミング言語であり、.NETは開発プ​​ラットフォームです。 C#は、コードの書き込み、.NETの中間言語(IL)にコンパイルされ、.NET Runtime(CLR)によって実行されるために使用されます。

c#.netの継続的な関連性:現在の使用法を見るc#.netの継続的な関連性:現在の使用法を見るApr 16, 2025 am 12:07 AM

C#.NETは、複数のアプリケーション開発をサポートする強力なツールとライブラリを提供するため、依然として重要です。 1)C#は.NETフレームワークを組み合わせて、開発を効率的かつ便利にします。 2)C#のタイプの安全性とゴミ収集メカニズムは、その利点を高めます。 3).NETは、クロスプラットフォームの実行環境とリッチAPIを提供し、開発の柔軟性を向上させます。

Webからデスクトップまで:C#.NETの汎用性Webからデスクトップまで:C#.NETの汎用性Apr 15, 2025 am 12:07 AM

c#.netisversatileforbothwebanddesktopdevelopment.1)forweb、useasp.netfordynamicapplications.2)fordesktop、equindowsorwpfforrichinterfaces.3)usexamarinforcross-platformdeveliment、enabling deshacrosswindows、

c#.net and the Future:新しいテクノロジーへの適応c#.net and the Future:新しいテクノロジーへの適応Apr 14, 2025 am 12:06 AM

C#と.NETは、継続的な更新と最適化を通じて、新しいテクノロジーのニーズに適応します。 1)C#9.0および.NET5は、レコードタイプとパフォーマンスの最適化を導入します。 2).Netcoreは、クラウドネイティブおよびコンテナ化されたサポートを強化します。 3)ASP.Netcoreは、最新のWebテクノロジーと統合されています。 4)ML.NETは、機械学習と人工知能をサポートしています。 5)非同期プログラミングとベストプラクティスはパフォーマンスを改善します。

c#.netはあなたにぴったりですか?その適用性の評価c#.netはあなたにぴったりですか?その適用性の評価Apr 13, 2025 am 12:03 AM

c#.netissuitableforenterprise-levelApplicationsとsystemduetoitsSystemdutyping、richlibraries、androbustperformance.

.NET内のC#コード:プログラミングプロセスの調査.NET内のC#コード:プログラミングプロセスの調査Apr 12, 2025 am 12:02 AM

.NETでのC#のプログラミングプロセスには、次の手順が含まれます。1)C#コードの作成、2)中間言語(IL)にコンパイルし、3).NETランタイム(CLR)によって実行される。 .NETのC#の利点は、デスクトップアプリケーションからWebサービスまでのさまざまな開発シナリオに適した、最新の構文、強力なタイプシステム、および.NETフレームワークとの緊密な統合です。

C#.NET:コアの概念とプログラミングの基礎を探るC#.NET:コアの概念とプログラミングの基礎を探るApr 10, 2025 am 09:32 AM

C#は、Microsoftによって開発された最新のオブジェクト指向プログラミング言語であり、.NETフレームワークの一部として開発されています。 1.C#は、カプセル化、継承、多型を含むオブジェクト指向プログラミング(OOP)をサポートしています。 2。C#の非同期プログラミングは非同期を通じて実装され、適用応答性を向上させるためにキーワードを待ちます。 3. LINQを使用してデータ収集を簡潔に処理します。 4.一般的なエラーには、null参照の例外と、範囲外の例外インデックスが含まれます。デバッグスキルには、デバッガーと例外処理の使用が含まれます。 5.パフォーマンスの最適化には、StringBuilderの使用と、不必要な梱包とボクシングの回避が含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール