C/C++ 中#include<> 和#include” ” 的区别及示例
先决条件: C/C++ 中的头文件及其用途
这两种类型的区别在于预处理器搜索要包含在代码中的文件的位置。
#include
#include “filename” // User defined header
#include<文件名>
#include<>用于预定义的头文件。如果头文件是预定义的,那么只需将头文件名写在尖括号中。
例子:
#include
#include
#include
预处理器在一个 依赖于实现的方式,通常在编译器/IDE预先指定的搜索目录中。这意味着编译器将搜索标准库头文件所在的位置。头文件可以在/usr/include或/usr/local/include等默认位置找到。此方法通常用于包含标准库头文件。
示例:下面是演示上述概念的 C++ 程序:
C
// C program to demonstrate
// the above concept
#include
// Driver code
int main()
{
printf("GeeksforGeeks | ");
printf("A computer science portal for geeks");
return 0;
}
C
// C program to demonstrate
// the above approach
// Include user-defined
// header file
#include "mul.h"
// Driver code
int main()
{
int a = 10;
int b = 20;
// Invoke the function defined in
// header file
int c = mul(a, b);
printf("%d", c);
return 0;
}
C
// C program to demonstrate
// the difference
// Header file
#include "stdio.h"
// Driver code
int main()
{
int a = 10;
printf("%d", a);
return 0;
}
C
// C program to demonstrate
// the difference
// Header file
#include
// Driver code
int main()
{
int a = 10;
printf("%d", a);
return 0;
}
C
// C program to demonstrate
// the difference between
// "" and <>
// This will include the standard
// header file
#include
// This will include the user-defined
// header file
#include "stdio.h"
// Driver code
int main()
{
int a = 10;
int b = 20;
// Invoke the function defined in
// header file
int c = add(a, b);
printf("Result of addition is: %d", c);
return 0;
}
输出:
GeeksforGeeks | A computer science portal for geeks
#include “文件名”
#include ” “用于程序员定义的头文件。如果程序员编写了他/她自己的头文件,则将头文件名写在引号中。
例子:
#include “mult.h”
Here, mul.h is header file written by programmer.
预处理器在与包含该指令的文件相同的目录中搜索。编译器会在当前文件夹或 -I 定义的文件夹中搜索这些头文件。此方法通常用于包含程序员定义的头文件。
mul.h 头文件:
// mul.h
int mul(int a, int b)
{
return(a * b);
}
下面是包含和使用头文件 mul.h 的 C 程序:
C
// C program to demonstrate
// the above approach
// Include user-defined
// header file
#include "mul.h"
// Driver code
int main()
{
int a = 10;
int b = 20;
// Invoke the function defined in
// header file
int c = mul(a, b);
printf("%d", c);
return 0;
}
输出:
200
#include<> 与 #include””S No. #include #include”filename” 1 The preprocessor searches in the search directories pre-designated by the compiler/ IDE. The preprocessor searches in the same directory as the file containing the directive. 2 The header files can be found at default locations like /usr/include or /usr/local/include. The header files can be found in -I defined folders. 3 This method is normally used for standard library header files. This method is normally used for programmer-defined header files.
案例1:使用符号#include””包含标准库头文件。
C
// C program to demonstrate
// the difference
// Header file
#include "stdio.h"
// Driver code
int main()
{
int a = 10;
printf("%d", a);
return 0;
}
输出:
10
解释:
#include ” ” 将首先搜索 ./ 。然后它将搜索默认包含路径。可以使用以下命令打印包含路径。
gcc -v -o a filename.c
案例 2:使用符号 #include<> 包含标准头文件
C
// C program to demonstrate
// the difference
// Header file
#include
// Driver code
int main()
{
int a = 10;
printf("%d", a);
return 0;
}
输出:
10
案例 3:同时使用符号 #include”” 和 #include<> 包含标准头文件,例如stdio.h
// stdio.h
int add(int a, int b)
{
return(a + b);
}
C
// C program to demonstrate
// the difference between
// "" and <>
// This will include the standard
// header file
#include
// This will include the user-defined
// header file
#include "stdio.h"
// Driver code
int main()
{
int a = 10;
int b = 20;
// Invoke the function defined in
// header file
int c = add(a, b);
printf("Result of addition is: %d", c);
return 0;
}
输出:
解释:
1. 在当前目录中创建 stdio.h 时,案例 1中的代码将生成错误,但案例 2中的代码将正常工作。
2. ” ” 和 < > 可以一起包含在同一个代码中,并且代码可以正常工作,因为这两种符号的搜索路径优先级不同。这里,“”将包含用户定义的头文件,<> 将包含标准头文件。