C语言代码组织基础
2015-09-21 13:25
288 查看
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文件.
相关文章推荐
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法
- C语言泛型编程实例教程
- C语言中使用lex统计文本文件字符数
- 在C语言中转换时间的基本方法介绍
- C语言进制转换代码分享