在某些头文件中应用 '/'

Application of '/' in some header files

本文关键字:应用 文件      更新时间:2023-10-16

最近我遇到了一些头文件,比如

 #include <sys/socket.h>
 #include <sys/types.h>
 #include <netinet/in.h>
 #include <bits/stdc++.h>

我想知道为什么使用'/'的实际原因。

到目前为止,我已经把它作为一个操作,包括一个更大的头文件的子头文件,就像Java

 import java.util.Scanner;

,
如果您删除'/'并尝试将头文件作为整体包含
它显示一个错误,头文件不存在。

请澄清关于这个问题的混淆。

目录分隔。例如,目录sys有一个名为socket.h的头文件。

作为文件系统中的路径,它可以是多个级别的。你可以有#include <some/sub/directory/with/a/file.h>

斜杠(/)与反斜杠()(或其他任何东西)的实际使用并不是标准化的,而是取决于系统。然而,所有主要平台都支持斜杠(/)作为路径中的分隔符,所以它是最常见的。

硬盘上的文件被组织到目录(或"文件夹")中。

文件的全名由它的路径标识,它可以命名几个这样的目录,用斜杠字符(/)或反斜杠字符()分隔。

阅读更多:

  • https://en.wikipedia.org/wiki/Directory_(计算)
  • https://support.dtsearch.com/webhelp/dtsearch/relative_paths.htm

当您构建一个c++文件时,预处理器将查找您指定的要包含在一组目录(默认目录+您在命令行上传递的目录)中的文件。

对于每个#include <something>,它尝试打开BASE_DIR/something,其中BASE_DIR是上述目录之一。

所以sys/socket.h表示预处理器应该尝试深入到子目录sys并打开socket.h