当我们在编写 C++ 程序时, 有时需要使用其它文件中定义的函数或变量,那么我们就需要使用 #include 语句把这个文件包含进来。在 C++ 中,#include 是一个预处理命令。
下面来详细讲解“C++ #include 是怎么样工作的?”的完整攻略:
1. #include 的作用
include 是 C++ 中的一个预处理命令,用于包含一个文件到当前文件中。被包含的文件通常包含一些常量定义、函数原型等信息。
在 C++ 中,# include 的使用方式有两种:一种是使用尖括号将要包含的文件名括在里面,如 #include
另一种方式是使用双引号将要包含的文件名括在里面,如 #include "foo.h"。这种方式则表明要包含的文件是用户定义的。
2. 实现细节
预处理器将 # include 指令处理为以下两个阶段:
-
首先,预处理器查找指定的文件。如果使用尖括号<>括起来,则预处理器将首先在系统文件夹中查找指定的文件。如果使用双引号""括起来,则预处理器将在当前文件所在的文件夹中查找指定的文件。
-
然后,预处理器将指定的文件插入到 # include 指令所在的位置,相当于将指定的文件内容“复制”到 # include 指令的位置。
3. 示例说明
下面是两个示例说明,分别演示了使用 # include 指令包含标准的与自定义的头文件:
(1)包含标准头文件
例如,我们要使用 printf 函数,就需要包含 stdio.h 头文件。在程序文件中加入 #include
#include <stdio.h>
int main(){
printf("Hello, world!\n");
return 0;
}
(2)包含自定义头文件
例如,我们在一个名为 foo.h 的文件中定义了一个函数 add(),现在在另一个文件中想要使用这个函数,就需要包含 foo.h 头文件。在程序文件中加入 #include "foo.h",这时预处理器将在当前文件所在文件夹中寻找 foo.h 文件。
foo.h 文件内容如下:
#ifndef FOO_H /* 防止重复包含 */
#define FOO_H
int add(int a, int b);
#endif
程序文件的代码如下:
#include "foo.h"
#include <stdio.h>
int main(){
int sum = add(1, 2);
printf("1 + 2 = %d\n", sum);
return 0;
}
int add(int a, int b){
return a + b;
}
这段代码将 foo.h 文件中的代码插入到程序文件中,这样就可以使用 add() 函数了。
通过以上的解释和示例,我们可以清楚地了解到 #include 的工作原理。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c++ #include是怎么样工作的? - Python技术站