📜  C/C++ 中#include<> 和#include” ” 的区别及示例

📅  最后修改于: 2022-05-13 01:54:50.256000             🧑  作者: Mango

C/C++ 中#include<> 和#include” ” 的区别及示例

先决条件: C/C++ 中的头文件及其用途

这两种类型的区别在于预处理器搜索要包含在代码中的文件的位置。

#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;
}


输出:

#include “文件名”

#include ” “用于程序员定义的头文件。如果程序员编写了他/她自己的头文件,则将头文件名写在引号中。

例子:

预处理器在与包含该指令的文件相同的目录中搜索。编译器会在当前文件夹或 -I 定义的文件夹中搜索这些头文件。此方法通常用于包含程序员定义的头文件。

mul.h 头文件:

下面是包含和使用头文件 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;
}

输出:

#include<> 与 #include””

S No.#include#include”filename”
1The 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.
2The 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.
3This 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;
}

输出:

解释:
#include ” ” 将首先搜索 ./ 。然后它将搜索默认包含路径。可以使用以下命令打印包含路径。

案例 2:使用符号 #include<> 包含标准头文件

C

// C program to demonstrate 
// the difference
// Header file
#include 
  
// Driver code
int main() 
{
  int a = 10;
  printf("%d", a);
  return 0;
}

输出:

案例 3:同时使用符号 #include”” 和 #include<> 包含标准头文件,例如stdio.h

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. ” ” 和 < > 可以一起包含在同一个代码中,并且代码可以正常工作,因为这两种符号的搜索路径优先级不同。这里,“”将包含用户定义的头文件,<> 将包含标准头文件。