C言語のインクルードファイルの「<>」と「””」の違い

記事内に広告が含まれています。

C言語にはincludeという機能があります。

これはソースファイルに別のファイル(ヘッダーファイル)を読みこむという機能です。

このincludeですが、指定方法がファイル名を「<>」でくくる方法と「””」でくくる方法の2つがあります。

C言語のincldueファイル

C言語のincldueファイルは、コンパイラがソースファイルをコンパイルする事前準備として、指定したファイルを該当のソースファイルに連結してくれるイメージの命令です。

C言語で「#」の付いた命令をプリプロセッサーといい、「#inclde」や「#define」があり、プリプロセッサーはコンパイラーがソースファイルを文法解釈をする前に実行されます。

この「#include」の命令には指定するファイル名を「<>」でくくる場合と「””」でくくる2種類の指定方法があります。

#include <stdio.h>
#include "mylib.h"

incldueファイルを「」でくくる場合と「””」でくくる違い

それぞれの違いは

  • 「<>」でくくるとコンパイラーに環境変数などで設定されたパスから探す
  • 「””」でくくるとカレントディレクトリを探して、無ければコンパイラーに環境変数などで設定されたパスから探す

という違いがあります。

なのでstdio.hやstdlib.h、string.hなどの標準的なincludeファイルは「<>」でくくられ、「mylib.h」などの開発者が定義したincludeファイルなどは「””」で括られることが多いのです。

そうすることで、少しでも無駄なファイル検索をさけ、コンパイル時間の短縮に役立てようという機能ですね。

ただ、カレントディレクトリ(一般的にはソースがあるディレクトリー)にヘッダーファイルを置かないようにしているようなプロジェクトでは「<>でくくれ」と言われたりするかもしれません。

まとめ

C言語のインクルードファイルの「<>」と「””」の違いはコンパイラーがincludeファイルを検索する際の順番を制御するための書式なので、そのことを意識して使い分けましょう。

以上、C言語のインクルードファイルの「<>」と「””」の違いでした。

タイトルとURLをコピーしました