📜  C / C++中的头文件及其用法

📅  最后修改于: 2021-05-28 05:06:13             🧑  作者: Mango

C语言具有许多库,这些库包括预定义的函数以使编程更容易。在C语言中,头文件包含一组预定义的标准库函数。通过在C预处理指令“ #include”中包含头文件,从而在程序中使用头文件的请求。所有的头文件都有一个扩展名“ .h” 。通过包含头文件,我们可以在程序中使用其内容。

C++还为用户提供了多种功能,其中的一项功能包含在头文件中。在C++中,所有头文件都可以以“ .h”扩展名结尾,也可以不以结尾,但在C语言中,所有头文件必须以“ .h”扩展名结尾
头文件包含:

  1. 函数定义
  2. 数据类型定义
  3. 巨集

它通过在预处理程序指令“ #include”的帮助下将它们导入程序中来提供上述功能。这些预处理器指令用于指示编译器在编译之前需要处理这些文件。
在C程序中,必须包含头文件,该头文件分别代表标准输入和用于分别借助scanf()和printf()函数进行输入的输出。
在C++程序中具有头文件它代表分别用于借助“ cin”和“ cout”进行输入的输入和输出流。
头文件有2种类型:

  1. 预先存在的头文件:在C / C++编译器中已经可用的文件,我们只需要导入它们即可。
  2. 用户定义的头文件:这些文件由用户定义,可以使用“ #include”导入。

句法:

#include 
or
#include "filename.h"

无论是预定义的头文件还是用户定义的头文件,我们都可以使用上述两种语法之一在程序中包含头文件。 “ #include”预处理器负责指示编译器在编译之前需要处理头文件,并且包括所有必需的数据类型和函数定义。

注意:我们不能在任何程序中两次包含相同的头文件。

创建自己的头文件:
无需编写大型复杂的代码,我们可以创建自己的头文件并将其包含在程序中以在需要时使用它。它增强了代码功能和可读性。以下是创建我们自己的头文件的步骤:

  1. 编写您自己的C / C++代码,并使用“ .h”扩展名保存该文件。下面是头文件的图示:
    // Function to find the sum of two
    // numbers passed
    int sumOfTwoNumbers(int a, int b)
    {
        return (a + b);
    }
    
  2. 如下所示,在C / C++程序中将头文件包含“ #include”
    // C++ program to find the sum of two
    // numbers using function declared in
    // header file
    #include "iostream"
      
    // Including header file
    #include "sum.h"
    using namespace std;
      
    // Driver Code
    int main()
    {
      
        // Given two numbers
        int a = 13, b = 22;
      
        // Function declared in header
        // file to find the sum
        cout << "Sum is: "
             << sumOfTwoNumbers(a, b)
             << endl;
    }
    
  3. 以下是上述程序的输出:

包括多个头文件:
您可以在程序中使用各种头文件。当头文件在程序中包含两次时,编译器将对该头文件的内容进行两次处理。这会导致程序中的错误。为消除此错误,使用了条件预处理器指令。

句法:

#ifndef HEADER_FILE_NAME
#define HEADER_FILE_NAME

   the entire header file

#endif

该构造称为包装器“ #ifndef” 。当再次包含标头时,条件将变为false,因为已定义HEADER_FILE_NAME 。预处理器将跳过文件的全部内容,而编译器将不会两次看到它。
有时,根据程序的要求包括几个不同的头文件是必不可少的。为此,使用了多个条件。

句法:

#if SYSTEM_ONE
        #include "system1.h"
#elif SYSTEM_TWO
        #include "system2.h"
#elif SYSTEM_THREE
   ....
#endif

标准头文件及其用途:

  1. #include 用于使用函数scanf()printf()进行输入和输出操作。
  2. #include 使用cin和cout用作输入和输出流。
  3. #include < 字符串.h>:用于执行与字符串相关的各种功能,例如strlen(),strcmp(),strcpy(),size()等。
  4. #include 用于执行数学运算,例如sqrt(),log2(),pow()等。
  5. #include 用于访问set()和setprecision()函数以限制变量中的小数位。
  6. #include 用于执行信号处理功能,例如signal()raise()
  7. #include 用于执行标准参数函数,例如va_start()va_arg() 。它也用于指示可变长度参数列表的开始,并分别从程序中的可变长度参数列表中获取参数。
  8. #include 用于执行错误处理操作,如errno()strerror()perror()等。
  9. #include 用于控制数据从文件中读取作为输入,并控制数据写入文件中作为输出。
  10. #include 用于执行与date()和time()相关的功能,例如setdate()和getdate()。它还用于修改系统日期并分别获取CPU时间。
  11. #include 它包含一组与浮点值相关的各种依赖于平台的常量。这些常量由ANSI C提出。它们使程序更具可移植性。此头文件中包含的常量的一些示例包括-e(指数),b(基数/基数)等。
  12. #include 它确定各种变量类型的各种属性。此标头中定义的宏限制了各种变量类型(例如charintlong)的值。这些限制指定变量不能存储超出这些限制的任何值,例如,无符号字符最多可以存储255

下面是说明头文件用法的程序:

// C program to illustrate the use of
// header file in C
#include 
#include 
#include 
#include 
  
// Driver Code
int main()
{
    char s1[20] = "12345";
    char s2[10] = "Geeks";
    char s3[10] = "ForGeeks";
    long int res;
  
    // Find the value of 9^3 using a
    // function in math.h library
    res = pow(9, 3);
    printf("Using math.h, "
           "The value is: %ld\n",
           res);
  
    // Convert a string to long long int
    // using a function in stdlib.h library
    long int a = atol(s1);
    printf("Using stdlib.h, the string");
    printf(" to long int: %ld\n", a);
  
    // Copy the string s3 into s2 using
    // using a function in string.h library
    strcpy(s2, s3);
    printf("Using string.h, the strings"
           " s2 and s3: %s %s\n",
           s2, s3);
  
    return 0;
}
输出:
想要从精选的最佳视频中学习和练习问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”