C/C++中的头文件介绍及其用法示例

2021年4月20日14:54:24 发表评论 1,476 次浏览

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

C++还为用户提供了多种函数,其中一个函数包含在头文件中。在c++中,所有的头文件都可以或者不可以以扩展名.h结束,但是在C中,所有的头文件都必须以扩展名.h结束。

头文件包含:

  1. 函数定义
  2. 数据类型定义

它通过在预处理指令“#include”的帮助下将上述特性导入程序,从而提供了上述特性。这些预处理指令用于指示编译器,这些文件需要在编译之前进行处理。

C

程序必须包含头文件, 该头文件代表标准输入和输出, 这些文件用于借助以下命令进行输入

在C程序中必须包含代表标准输入和输出的头文件,用于分别在scanf()和printf()函数的帮助下接受输入。

在c++程序中有代表输入流和输出流的头文件,它们分别在“cin”和“cout”的帮助下接受输入。

头文件有两种类型:

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

语法如下:

#include <filename.h>
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. 以下是上述程序的输出:

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

包括多个头文件:

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

语法如下:

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

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

//C program to illustrate the use of
//header file in C
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
  
//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;
}

输出如下:

使用math.h, 值是:729
使用stdlib.h, 将字符串转换为long int:12345
使用string.h, 将字符串s2和s3:ForGeeks ForGeeks


木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: