假定你是在linux下做这件事 (在windows下应该也是类似的)
成都创新互联公司长期为成百上千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为龙岗企业提供专业的网站制作、成都网站建设,龙岗网站改版等技术服务。拥有十载丰富建站经验和众多成功案例,为您定制开发。
假定你要产生的库名字为 libtest.a
1. 实现库函数于 test.c
#include stdio.h
int test()
{
printf("hello world!\n");
return 0;
}
test.h内容:
extern int test();
2. 编译test.c并产生库文件
gcc -c test.c
ar -r libtest.a test.o
3. 其他程序如何调用 libtest.a 里的 test()函数?
main.c
#include "test.h"
int main()
{
return test();
}
4. 编译main.c产生可执行文件
gcc -o main.out main.c -L/path/to/libtest -ltest
5. 运行 main.out
./main.out
PS, 头文件的用处无非就是提供函数原型声明,在我上面给的例子中,可以把 test.h 删除, 但是必须在 main.c 里自己加上 extern int test(); 来声明函数。
库函数(Library
function)是把函数放到库里,供别人使用的一种方式。.方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用。调用的时候把它所在的文件名用#include加到里面就可以了。一般是放到lib文件里的。
一般是指编译器提供的可在c源程序中调用的函数。可分为两类,一类是c语言标准规定的库函数,一类是编译器特定的库函数。
由于版权原因,库函数的源代码一般是不可见的,但在头文件中你可以看到它对外的接口
库函数简介。
C语言的语句十分简单,如果要使用C语言的语句直接计算sin或cos函数,就需要编写颇为复杂的程序。因为C语言的语句中没有提供直接计算sin或cos函数的语句。又如为了显示一段文字,我们在C语言中也找不到显示语句,只能使用库函数printf。
C语言的库函数并不是C语言本身的一部分,它是由编译程序根据一般用户的需要编制并提供用户使用的一组程序。C的库函数极大地方便了用户,同时也补充了C语言本身的不足。事实上,在编写C语言程序时,应当尽可能多地使用库函数,这样既可以提高程序的运行效率,又可以提高编程的质量。
这里调用的是静态库。
函数库:函数库是由系统建立的具有一定功能的函数的集合。库中存放函数的名称和对应的目标代码,以及连接过程中所需的重定位信息。用户也可以根据自己的需要建立自己的用户函数库。
库函数:存放在函数库中的函数。库函数具有明确的功能、入口调用参数和返回值。
连接程序:将编译程序生成的目标文件连接在一起生成一个可执行文件。
头文件:有时也称为包含文件。C语言库函数与用户程序之间进行信息通信时要使用的数据和变量,在使用某一库函数时,都要在程序中嵌入(用#include)该函数对应的头文件。
由于C语言编译系统应提供的函数库尚无国际标准。不同版本的C语言具有不同的库函数,用户使用时应查阅有关版本的C的库函数参考手册。我们以Turbo
C为例简介一下C的库函数,并附录中给出了Turbo
C的部分常用库函数。
C语言的库函数很多
大概几百个,举几个常用的
比如
printf()、scanf(),等等
库函数是系统内部定义好的,不需要定义,但在使用前
需要把它所在的函数库的头文件进来
,
比如你要使用
sin()这个函数
,这个函数在math.h
这个头文件里
,
就需要在程序开始
加入
#include
“math.h”
然后你就可以在程序里直接使用了
如果你能找到你的编译器的库文件放在哪里,那么只要把你的自己编写的函数放在编译器的库函数的文件中,直接引用就可以。
但是很多编译器的库函数是不开放的,你很难找到库函数的文件在哪。
因此,你只能把自己写的函数电脑的某个盘里,如d:\\盘,引用的时候直接引用就行。比如,自己写个文件(myfile.h)放在 d
盘,即路径为 d:\\myfile.h
举个例子:
【1.】把myfile.h文件放在d盘
可以新建一个记事本文件(后缀.txt),把文件名改为(myfile.h),在该文件中添加如下内容:
// myfile.h 自定义一个的输出 * 图行的文件,相当于库函数
#include stdio.h
void Display_San(int n) //打印*三角形
{
int i;
for(i=0; in; i++)
{
printf(" * \n");
printf(" *** \n");
printf(" ***** \n");
printf(" ******* \n");
printf(" ********* \n");
printf("*********** \n");
}
}
void Display_Si(int n) //打印*矩形
{
int i;
for(i=0; in; i++)
{
printf("* * * * * *\n");
printf("* *\n");
printf("* *\n");
printf("* *\n");
printf("* *\n");
printf("* * * * * *\n");
}
}
//还可以有更多的函数.......放在一个文件中,成了自定义的库函数
【2.】在主函数中,引入该文件:
#include "d:\\myfile.h" //引入自定义的文件,该文件包含两个函数(即自定义的库函数)
void main()
{
Display_San(2); //在d:\\myfile.h文件中定义了
Display_Si(3); //在d:\\myfile.h文件中定义了
}
这就成了引用库函数了!!!!!!