“#include <sndfile.h>” 是什么意思?

4

“#include <sndfile.h>”是什么意思?(抱歉,我是C/C++新手)

顺便说一下,我知道ActionScript和HTML。


2
如果您能告诉我们您掌握的编程语言,那会很有帮助(我们可以用您已经熟悉的术语来表述)。 - Edan Maor
2
我认为这并不应该被踩。确实,这是一个非常基础的问题,但对于第一次看到C代码的人来说,这是一个合法的问题。 - Daniel Pryden
1
你会问关于 #include <stdio.h>, #include <windows.h>, #include <getent.h> 等的同样问题吗? - Sinan Ünür
1
另外,理解“#include”的作用就像你所说的那样,是一个初学者问题。并不是说你不应该问,但如果你要使用C/C++进行工作,我真的建议你阅读一本书/通过教程了解基础知识。 - Edan Maor
6个回答

10

这是一个预处理指令,用于包含名为'sndfile.h'的头文件。基本上意味着在该指令的位置包含该文件的内容,这通常会提供将链接到您的源代码的对象文件的函数定义,并经常定义常量等等......

参见维基百科


3
#include指令告诉预处理器将指定文件的内容视为出现在源程序中指令所在的位置。
#include  "path-spec"
#include  <path-spec>

路径规范是一个文件名,可选地前面带有目录规范。文件名必须命名为现有文件。路径规范的语法取决于编译程序所在的操作系统。
您可以将常量和宏定义组织到包含文件中,然后使用#include指令将这些定义添加到任何源文件中。包含文件还有助于合并外部变量和复杂数据类型的声明。
您只需要在专门创建的包含文件中定义和命名类型一次即可。

另请参见此处, 此处此处


1

1

#include XXX 的意思是,如上所述,在任何其他编译步骤之前将 XXX 的内容包含在源代码中,就好像它们已经被复制和粘贴。

XXX 可以用 <括号> 或 "引号"。 <括号> 文件在系统路径上搜索,而 "引号" 文件在用户路径上搜索。

这些路径的定义方式因编译器和构建系统而异。编译器通常允许用户覆盖此搜索逻辑,但对于自己的头文件使用 "引号",对于系统则使用 <括号> 是一个好习惯。


0
一个形式为
# include <h-char-sequence> new-line
的预处理指令,在一系列实现定义的位置中搜索由<和>分隔符之间的指定序列唯一标识的标题,并导致该指令被标题的整个内容替换。如何指定位置或标识标题是实现定义的。

0

#include <sndfile.h> 是一个预处理器命令,本质上的作用是将sndfile.h文件的内容复制粘贴到当前文件中。

通常用于从外部库或其他源文件中导入函数定义,这样可以在不必重新编译整个代码库的情况下访问它们。通过将公共定义放在自己的小头文件中,它可以包含在尽可能多的源文件中。这样,只需在更改时更新一个文件,而不必修改所有使用该库的源文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接