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

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"预处理器负责指导编译器在编译之前需要处理头文件, 并且包括所有必要的数据类型和函数定义。
注意:我们不能在任何程序中两次包含相同的头文件。
创建自己的头文件:
【C/C++中的头文件介绍及其用法示例】无需编写大型而复杂的代码, 我们可以创建自己的头文件并将其包含在程序中以在需要时使用它。它增强了代码功能和可读性。以下是创建我们自己的头文件的步骤:
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++中的头文件介绍及其用法示例

文章图片
包括多个头文件:
你可以在程序中使用各种头文件。当头文件两次包含在程序中时, 编译器将对该头文件的内容进行两次处理。这会导致程序错误。为消除此错误, 使用了条件预处理器指令。
语法如下:
#ifndef HEADER_FILE_NAME #define HEADER_FILE_NAMEthe 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

    推荐阅读