• [C] 如何使用头文件 .h 编译 C 源码


      在 C 语言中,头文件包含文件通常是一个源代码文件,程序员使用编译器指令将头文件包含进其他源文件的开始(或头部),由编译器在处理另一个源文件时自动包含进来。

      一个头文件一般包含类、子程序、变量和其他标识符的前置声明。需要在一个以上源文件中被声明的标识符可以放在一个头文件中,使用时在其他源文件中包含该头文件。

      头文件作为模块的公共接口,在其中声明函数原型、对象和数据类型。

      让我们首先创建一个头文件 add.h:

     #ifndef _ADD_H_
     #define _ADD_H_
     
     int add(int, int);
     
     #endif 

      其中 #ifndef, #define, #endif 是编译器指令,为了防止重复包含头文件,最好将所有声明置于 #ifndef ... #endif 区块中。_ADD_H_ 是头文件标识符,为了保持唯一性,一般为头文件名大写,并将其中的句号替换为下划线,同时前后各加一条下划线。

      然后让我们再创建一个源文件 add.c 来实现 add.h 中声明的函数原型:

     #include "add.h"
     
     int add(int a, int b)
     {
         return a + b;
     }

      至此我们就准备好了一个源码文件 add.c 和一个头文件 add.h,现在你可以在其他 .c 文件中包含头文件 add.h,然后将它链接到 add.c 的链接文件。

      现在我们创建一个文件 triple.c,并在其中包含 add.h 头文件:

    #include <stdio.h>
    #include "add.h"
    
    int triple(int x){
        return add(x, add(x, x));
    }
    
    void main() {
        int x;
        scanf("%d", &x);
        printf("x=%d
    ", triple(x));
    }

      接下来就是使用 gcc 编译它们,首先编译 .c 源文件为 .o 链接文件:

    $ gcc -c triple.c -o triple.o
    $ gcc -c add.c -o add.o

      我们得到两个链接文件 triple.o, add.o。现在让我们将它们链接成可执行文件:

    $ gcc triple.o add.o -o triple

      让我们测试一下可执行文件 triple:

    $ ./triple 
    12
    x=36

     

      总结:头文件是在预编译阶段使用,在预编译时编译器会使用头文件中的内容替换 #include 命令。

  • 相关阅读:
    2009年度最佳jQuery插件
    转:Jeff Dean的Stanford演讲
    Zookeeper的RPC框架
    转:电商推荐技术
    NoSQL设计思想(从辅到主)
    工作一年小结
    转:MySQL索引背后的数据结构
    java多线程并发,java的几种状态
    转发:Linux Socket编程
    几个linux shell的讲解网站
  • 原文地址:https://www.cnblogs.com/ifantastic/p/3914756.html
Copyright © 2020-2023  润新知