C语言代码组织基础

C语言使用静态库或者是动态库的形式组织每个人写的代码文件

静态库的文件为.o结尾的文件
有min.c max.c t1.c 三个文件
max.c

int max(int num1, int num2) {
    if (num1 > num2) {
        return num1;
    } else {
        return num2;
    }
}

min.c

int min(int num1, int num2) {
    if (num1 < num2) {
        return num1;
    } else {
        return num2;
    }
}

t1.c

#include <stdio.h>
#include "max.c"
#include "min.c"
int main() {
    int a = 100;
    int b = 22;
    int c = max(a, b);
    printf("the max value is %d\n", c);
    int d = min(a, b);
    printf("the min value is %d\n", d);
}

当t1.c需要使用max.c min.c 文件时可以在头文件直接引入对应的c文件。但是如果max.c和min.c的提供方不想提供源码就可以使用静态库的形式即提供.o文件使用人员。

编译max.o,和min.o文件
gcc -c max.c
gcc -c min.c
在t1.c中使用时就不需要引入max.c和min.c这两个文件了只需要gcc编码时添加既可
gcc min.o max.o t1.c

但是这种方式有一点不好,使用max min两个函数时无法查看函数原型和文档,所以在这里我们可以编写两个.h的头文件
max.h 和 min.h

max.h
    int max(int num1, int num2);
min.h
    int min(int num1, int num2);
在t1.c中引入 头文件
#include <max.h>
#include <min.h>

这样提供方可以提供.o和.h文件供使用者查看和使用。

但是这么做还是有一点不好,因为每次编译时都需要指定gcc max.o min.o两个.o文件 如果静态库一多,多到上千个。那么编译起来将会非常麻烦。所以这里提供一种Makefile 写好编译文件使用make工具对文件进行编译。

Makefile

#this is make file
main.out:max.o min.o t1.c
    gcc max.o min.o t1.c -o main.out

max.o:max.c
    gcc -c max.c

min.o:min.c
    gcc -c min.c

make 内部使用的也是gcc编译
main.out:max.o min.o t1.c
main.out 要编译的可执行文件 冒号后的max.o,min.o,t1.c代表要使用到的文件。如果发现没有max.o文件。
则会使用下面的语句
max.o:max.c
gcc -c max.c
生成max.o文件 如果max.c 文件有修改或者max.o文件没有,都会执行这一条语句编译出max.o文件.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值