#include <stdio.h>
尖括号 (<>) 会导致预处理程序在系统上头文件的标准位置(通常是 /usr/include 目录)中搜索头文件。
对于您已存储在您自己的目录中的头文件,格式不同:
#include "header.h"
对于 #include "foo.h" 形式的语句(其中使用了引号),编译器按以下顺序搜索 include 文件:
当前目录(即放置“包含”文件的目录)
以 -I 选项命名的目录(如果有)
/usr/include 目录
如果头文件所在的目录与包含该头文件的源文件所在的目录不同,请使用 -I 编译器选项指定存储头文件时所用目录的路径。例如,假设在源文件 mycode.c 中已包含 stdio.h 和 header.h:
#include <stdio.h> #include "header.h"
进一步假设 header.h 存储在目录 ../defs 中。然后,可能需要使用以下命令:
% cc –I../defs mycode.c
该命令指示预处理程序首先在包含 mycode.c 的目录中搜索 header.h,然后在目录 ../defs 中搜索,最后在标准位置搜索。它还指示预处理程序首先在 ../defs 中搜索 stdio.h,然后在标准位置搜索。不同之处在于:仅对于其名称用引号括起的头文件,才查找当前目录。
您可以在 cc 命令行上多次指定 -I 选项。预处理程序按指定目录出现的顺序查找它们。可以在同一命令行上指定多个 cc 选项:
% cc– o prog– I../defs mycode.c