C语言中的条件编译问题

如图

include< >,和 include" "的区别,
这张图片

这个 #include"LCD drive.h"是在源文件目录下吗?源文件目录是啥啊?
能给具体讲解下着两种操作的本质区别吗?

简单点说,尖括号的意思是要包含的文件是系统的,会优先在系统的包含路径中去找,典型的像
<stdio.h>。双引号的意思是用户自己的头文件,所以先在用户指定的目录中去找,然后再去系统的路径内去找,比如"my.h"。
默认的路径,用户的头文件默认放在与源文件相同的目录下,比如my.c所在的目录,或者系统的工程文件目录,这一点不同的系统可以会有不同的规定。而系统的头文件一般放在编译器的安装目录下,可能需要用编译系统规定的语法进行指定,比如 -I=C:\XXX\INCLUDE;这个语句一般在集成的编译环境中可以进行配置,如果配置不好,就可以会大量的出现某某头文件找不到的情况,当然,编译系统安装的时候,一般都会配置好的,很少需要用户特意进行配置。
结论,尖括号与双引号没有本质的区别,可以全部用双引号。如果是系统的头文件,用尖括号会稍微快一点。但对现在的计算机系统来说,快得这一点,很有限。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-26
先解释下源文件目录:源文件就是你的c文件,源文件目录就是c文件所在的目录,这明白吧!
一般比如说有个LED项目,我要建LED.c LED.h 就就可以#include “LED.h”
带尖括号的一般是你用的编译器已经设置好的,有固定的目录。
比如你#include<intrins.h>写成了#include"intrins.h"那么编译器会先在你的源文件目录查找intrins.h这个文件,如果没有再到别的地方查找,所以这两种方法的选择对程序执行效率有影响的。本回答被提问者采纳
第2个回答  2013-09-26
#include"LCD drive.h"先在源文件目录查找,表示当前截图的这个c或者c++文件所在的目录,如果没有才会去系统定义的目录中去找。

#include <>则不会在当前目录查找,而直接到系统定义的目录中去找。
第3个回答  2013-09-26
编译器的选项设置以及工程的设置里都有一项是包含路径
假设有一个头文件a.h ,在设置的包含路径里有a.h文件。

然后有一个文件a.cpp,他在你的文件夹D:\work下,同时该文件夹下也有一个叫a.h的头文件。
此时 #include<a.h> 会去搜索设置里的包含路径,也就是会使用包含路径文件里的a.h
而#include"a.h" 会优先搜索a.cpp文件所在的文件夹,所以会使用D:\work文件夹下的a.h文件,如果这两个头文件内容不一样,则会造成不同的编译结果
第4个回答  2013-09-26
#include <>:表示该源文件是在当前的目录下,编译器会在当前目录下为你寻找与之对应的源文件
#include " ":表示该源文件不是在当前的目录下,编译器会在整个系统文件中为你寻找这个源文件追问

误导我