📜  如何用C编写自己的头文件?

📅  最后修改于: 2021-05-25 23:37:41             🧑  作者: Mango

众所周知,扩展名为.h的文件在C中称为头文件。这些头文件通常包含函数声明,可以在我们的主C程序中使用该函数声明,例如,例如,需要在我们的C程序中包含stdio.h在程序中使用函数printf()。因此出现了问题,是否可以创建自己的头文件?

上面的答案是肯定的。头文件只是简单的文件,您可以在其中声明您自己的函数,这些函数可以在主程序中使用,也可以在编写大型C程序时使用。
注意:头文件通常包含数据类型,函数原型和C预处理程序命令的定义。

下面是创建自己的头文件并相应使用它的简短示例。

  1. 创建myhead.h:编写以下代码,然后将文件另存为myhead.h,或者可以指定任何名称,但扩展名应为.h,指示其头文件。
    // It is not recommended to put function definitions 
    // in a header file. Ideally there should be only
    // function declarations. Purpose of this code is
    // to only demonstrate working of header files.
    void add(int a, int b)
    {
        printf("Added value=%d\n", a + b);
    }
    void multiply(int a, int b)
    {
        printf("Multiplied value=%d\n", a * b);
    }
    
  2. 在其他程序中包括.h文件:现在,为了使用printf()函数,我们需要将stdio.h包含在#include中。我们还需要将上面的头文件myhead.h包含在#include“ myhead.h”中。此处的“”用于指示预处理程序查看当前文件夹以及所有当前头文件的标准文件夹(如果在当前文件夹中找不到)。因此,如果您希望使用尖括号而不是“”来包含头文件,则可以将其保存在头文件的标准文件夹中。如果使用“”,则需要确保将创建的头文件保存在使用该头文件保存C文件的文件夹中。
  3. 使用创建的头文件:
    // C program to use the above created header file
    #include 
    #include "myhead.h"
    int main()
    {
        add(4, 6);
      
        /*This calls add function written in myhead.h  
          and therefore no compilation error.*/
        multiply(5, 5);
      
        // Same for the multiply function in myhead.h
        printf("BYE!See you Soon");
        return 0;
    }
    

    输出:

    Added value:10
    Multiplied value:25
    BYE!See you Soon
    

    注意:仅当您创建了头文件并将其保存在与上述c文件相同的文件夹中时,以上代码才能成功编译并输出上述输出。

重要事项:
通常在编写大型C程序时需要创建头文件,以便模块可以共享函数定义,原型等。

  • 函数和类型声明,全局变量,结构声明,在某些情况下还包括内联函数;定义需要集中在一个文件中。
  • 在头文件中,请勿使用冗余或其他头文件;只有最少的一组语句。
  • 不要将函数定义放在标题中。将这些内容放在单独的.c文件中。
  • 包括函数和变量的声明,这些函数和变量的定义对于链接器是可见的。同样,在多个源文件之间共享的数据结构和枚举的定义。
  • 简而言之,仅放入必要的内容并保持头文件简洁。

本文仅是为您提供有关创建头文件并使用头文件的想法,但这并不是编写大型C程序时实际发生的情况。通常在编写大型C程序时需要创建头文件,以便模块可以共享函数定义,原型等。

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。