include< > 和 #include” ” 的区别
< > 是从系统目录中寻找,对于 VS 来说,系统目录是类似 D:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\ 这样的安装路径,里面包含我们常用的系统头文件;
如果在系统目录里找不到,会在包含目录里找。
ps:如何找到系统目录,使用 everything 搜索 stdio.h 即可。
" " 是首先在使用 include 的源文件所在目录找, 而不是工程文件所在工作目录,如果找不到再去附加包含目录和系统目录找。
举例说明:
//main.cpp
#include <stdio.h>
#include "lbx.h"
int main()
{
return 0;
}
是 main.cpp 包含 lbx.h,因此会先在 main.cpp 所在的同级目录中查找。
编写一个简单的程序测试一下,主函数保持不变
//这个文件放在 main.cpp 所在的同级目录
#include <stdio.h>
void Test()
{
printf("this is main");
}
//这个文件放在包含目录下
#include <stdio.h>
void Test()
{
printf("this is my_include");
}
//这个文件放在 main.cpp 所在的同级目录
#include <stdio.h>
void Test()
{
printf("this is system");
}
运行结果:
三个文件同时存在:this is main
删除和 main 目录同级的 lbx.h :this is my_include
总结:include “” 查找文件的顺序是 1. 使用 include 的源文件所在目录,2. 包含目录,3. 系统目录。