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言語のインクルードファイルの「<>」と「””」の違いでした。