このページでは、C言語におけるincludeファイルを使う際の「<>」と「””」での違いについて解説します。
プリプロセッサーがどのようにこれらを処理するのか、実装サンプルを交えて詳しく説明し、開発現場での利用時の注意点を理解することができます。
includeファイルとは
C言語における「includeファイル」とは、他のファイルをコードに組み込むためのディレクティブです。
主に再利用性や可読性を高めるために使われ、ヘッダファイルの内容を簡単にプログラムに取り込むことができます。
プリプロセッサーによる処理
C言語のプログラムをコンパイルする際、まず最初にプリプロセッサーが動作します。プ
リプロセッサーは、includeディレクティブを見つけると、そのファイルを探し出し、プログラムの該当箇所に挿入します。
「<>」と「””」の違い
includeディレクティブで使用する括弧には、「<>」と「””」の2種類があります。
これらの違いは、ファイルを検索する際のディレクトリの優先順位にあります。
「<>」の使い方
「<>」で括られた場合、プリプロセッサーは標準ライブラリのパスで指定されたディレクトリからファイルを検索します。
これは、標準ライブラリやシステムライブラリのヘッダファイルをインクルードする際に使用されます。
#include <stdio.h>
#include <stdlib.h>
「””」の使い方
一方、「””」で括られた場合、まず現在のソースファイルが存在するディレクトリからファイルを探します。
それが見つからない場合、次に標準ライブラリのディレクトリを検索します。これは、ユーザー定義のヘッダファイルをインクルードする際に主に使用されます。
#include "myheader.h"
#include "config.h"
実際の動作例
以下に「<>」と「””」を使用した具体的なコード例を示します。
この例では、標準ライブラリのファイルとユーザー定義のヘッダファイルをインクルードしています。
標準ライブラリをインクルード
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
ユーザー定義のヘッダファイルをインクルード
// myheader.h ファイル
#ifndef MYHEADER_H
#define MYHEADER_H
void sayHello();
#endif
// main.c ファイル
#include <stdio.h>
#include "myheader.h"
void sayHello() {
printf("Hello from myheader.h\n");
}
int main() {
sayHello();
return 0;
}
まとめ
「<>」と「””」の違いを理解することで、includeディレクティブの使用方法をより適切に選択できるようになります。
「<>」は標準ライブラリやシステムライブラリをインクルードする際に使用し、「””」はユーザー定義のファイルをインクルードする際に優先的に使用されます。
プリプロセッサーがどのディレクトリを検索するかを正しく理解し、効率的なコードを書くことが重要です。