include语法问题

最近在接触C++编程时几次遇到#include  <> 和 #include " "使用上的编译错误,就想着了解一下这两种用法的区别:

原文见:GCC说明

include 语法:

使用预处理指令包含用户和系统头文件#包括”。它有两个变种:

第一种:

#include <file>

此变体用于系统头文件。它在标准的系统目录列表中搜索名为file的文件。您可以使用 - I 选项将目录添加到以下系统目录列表中 (请参阅调用)。

第二种:

#include "file"

此变体用于您自己的程序的头文件。它首先在包含当前文件的目录中搜索名为file的文件,然后在quote目录中搜索,然后搜索用于<file>的相同目录 。你可以通过- iquote选项将目录预置到quote目录列表里。

参数'#include',无论是用引号还是尖括号分隔,都表现为字符串常量,因为无法识别注释,并且不会扩展宏名称。因此,include<x/*y>指定包含名为x/*y的系统头文件。

但是,如果文件中出现反斜杠,则它们被视为普通文本字符,而不是转义字符。没有处理适合C中字符串常量的字符转义序列。因此,#include "x\n\\y"指定包含三个反斜杠的文件名。(有些系统解释'\'作为路径名分隔符。所有这些也解释'/' 一样的方法。它只最便于使用"/"。)

如果文件名后面的行上有任何内容(注释除外),则会出错。

发布了41 篇原创文章 · 获赞 35 · 访问量 4344

猜你喜欢

转载自blog.csdn.net/weixin_38140931/article/details/89917557