在include指令中使用尖括号和引号有什么区别?
#包括<文件名>#包括“文件名”
在include指令中使用尖括号和引号有什么区别?
#包括<文件名>#包括“文件名”
当前回答
不同的是预处理器搜索要包含的文件的位置。
#include<filename>预处理器以实现定义的方式进行搜索,通常在编译器/IDE预先指定的目录中进行搜索。此方法通常用于包含C标准库的头文件和与目标平台相关联的其他头文件。#include“filename”预处理器也以实现定义的方式进行搜索,但通常用于包括程序员定义的头文件,并且通常包括与包含指令的文件相同的目录(除非给出了绝对路径)。
对于GCC,可以在GCC文档中找到关于搜索路径的更完整描述。
其他回答
不同的是预处理器搜索要包含的文件的位置。
#include<filename>预处理器以实现定义的方式进行搜索,通常在编译器/IDE预先指定的目录中进行搜索。此方法通常用于包含C标准库的头文件和与目标平台相关联的其他头文件。#include“filename”预处理器也以实现定义的方式进行搜索,但通常用于包括程序员定义的头文件,并且通常包括与包含指令的文件相同的目录(除非给出了绝对路径)。
对于GCC,可以在GCC文档中找到关于搜索路径的更完整描述。
表格1-#include<xxx>
首先,在调用指令的当前目录中查找头文件的存在。如果未找到,则在预配置的标准系统目录列表中进行搜索。
表格2-#包括“xxx”
这将查找在调用指令的当前目录中是否存在头文件。
确切的搜索目录列表取决于目标系统、GCC的配置方式以及安装位置。通过使用-v选项运行GCC编译器,可以找到GCC编译器的搜索目录列表。
您可以使用-Idir将其他目录添加到搜索路径中,这会导致在当前目录之后(对于指令的引号形式)和标准系统目录之前搜索dir。
基本上,表单“xxx”只是在当前目录中搜索;如果未找到,则返回表单
有两种方法可以编写#include语句。它们是:
#include"filename"
#include<filename>
每种形式的含义是
#include"mylib.h"
该命令将查找当前目录中的文件mylib.h以及可能已设置的include搜索路径中提到的指定目录列表。
#include<mylib.h>
此命令将仅在指定的目录列表中查找文件mylib.h。
include搜索路径只是一个目录列表,可以搜索包含的文件。不同的C编译器允许您以不同的方式设置搜索路径。
一般来说,区别在于预处理器搜索头文件的位置:
#include是包含头文件的预处理器指令。两个#include都用于在程序中添加或包含头文件,但首先是包含系统头文件,然后是用户定义的头文件。
#include<filename>用于在程序中包含系统库头文件,意味着C/C++预处理器将搜索存储C库文件或预定义系统头文件的文件名。#include“filename”用于在程序中包含用户定义的头文件,这意味着C/C++预处理器将在程序所在的当前目录中搜索文件名,然后遵循#include<filename>所使用的搜索路径
检查gcc-docs-gcc-include文件
在C++中,以两种方式包含文件:
第一个是#include,它告诉告诉在预定义的默认位置查找文件。此位置通常是INCLUDE环境变量,表示包含文件的路径。
第二种类型是#include“filename”,它告诉预处理器首先在当前目录中查找文件,然后在用户设置的预定义位置查找文件。