面试题答案
一键面试- 系统头文件查找路径规则:
- 编译器通常会在预定义的系统目录中查找系统头文件。这些目录因操作系统和编译器而异。例如,在Linux系统下,GCC编译器默认会在
/usr/include
等目录查找。在Windows系统下,Visual Studio可能会在其安装目录下的相关头文件目录查找(如C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30133\include
等)。
- 编译器通常会在预定义的系统目录中查找系统头文件。这些目录因操作系统和编译器而异。例如,在Linux系统下,GCC编译器默认会在
<>
和""
在路径查找上的区别:<>
:- 当使用
<>
包含头文件时,编译器会直接在系统头文件目录中查找。例如,#include <stdio.h>
,编译器只会在系统指定的用于存放标准库头文件的目录中搜索stdio.h
,不会在当前源文件所在目录等其他非系统头文件目录查找。这样做的好处是能确保找到的是系统标准的头文件,避免与自定义头文件混淆。
- 当使用
""
:- 当使用
""
包含头文件时,编译器首先会在当前源文件所在目录查找头文件。如果在当前目录未找到,编译器才会按照系统头文件查找规则,到系统头文件目录中查找。例如,#include "myheader.h"
,编译器会先在包含该#include
语句的源文件所在目录找myheader.h
,若找不到,再去系统头文件目录找。这种方式适合包含项目内自定义的头文件,优先从项目内查找,符合项目开发的实际需求。
- 当使用