数码资讯
linux库文件编写简介
1。为什么使用库文件 在实际的编程中,我们肯定会遇到这种情况:在几个项目中,有几个功能模块具有相同的功能, 实现代码是相同的,我们称之为重复代码,例如,许多项目都有用户验证功能。 代码部分如下所示: / /用户登录。h文件,提供函数声明 Int IsValidUser(char *用户名,int n
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
1。为什么使用库文件
在实际的编程中,我们肯定会遇到这种情况:在几个项目中,有几个功能模块具有相同的功能,
实现代码是相同的,我们称之为重复代码,例如,许多项目都有用户验证功能。
代码部分如下所示:
/ /用户登录。h文件,提供函数声明
Int IsValidUser(char *用户名,int namelen);
/ /用户登录。C文件来验证用户信息
Int IsValidUser(char *用户名,int namelen)
{
Int IsValid = 0;
下面是具体的处理代码
返回的有效性
}
如果每个项目是由这两个用户登录保存。H和UserLogin。C文件,将有几个
事故:
1,每个项目都有一个重复的模块,导致代码重复。
2、代码的可重用性不好,一旦isvaliduser代码更改,以保持设计的一致性,
我们还必须手动修改UserLogin。在其他项目中的C文件,既费时费力又容易出错。
库文件是公共代码的组织。
为了解决上述两个缺点,本文提出了一种利用库文件存储公共代码的方案。要点是
将目标代码与项目分开,并将其存储在库文件中。
使用此代码时,可以在编译或运行库文件时从库文件中获得目标代码。
它分为两类:静态库和动态库。
二、静态库和动态库
如果在编译时加载程序加载库文件,则使用静态库,
换句话说,如果使用静态库,静态库代码在编译时被复制到程序的代码段。
程序的容量扩展了。如果使用动态库,程序中只保留库文件的名称和函数名,并在运行时找到它。
程序的体积在库文件和函数体的大小上几乎没有变化。
静态库的原理是在时间上空间,增加程序的体积,减少运行时间;
动态库是它及时改变了空间,增加了运行时间,但减少了程序本身的体积。
让我们看看如何在实际例子中使用这两个库。
三。静态库的编写与使用
1。概述
静态库文件的扩展通常是A,其编写步骤很简单。
写函数代码
编译器生成目标文件。
使用AR文件归档的目标,生成一个静态库文件。
注意,存档的文件名必须由库头负责。
使用要点:
静态库头文件中的i参数GCC中的路径。
GCC库文件中的L参数和目录
在L参数GCC中使用数据库文件名,但要删除库和扩展名。
例如,库文件的名字是libtest。然后参数-测试
2。编写最简单的静态库文件
编写以下两个文件并注意同一目录
myalib。H / /静态库的头
Myalib。C / /静态库文件
的 / / myalib h文件的内容。
空洞测试();
的 / / myalib C文件的内容。
#是
空洞测试()
{
printf(检验);
}
在实际的编程中,我们肯定会遇到这种情况:在几个项目中,有几个功能模块具有相同的功能,
实现代码是相同的,我们称之为重复代码,例如,许多项目都有用户验证功能。
代码部分如下所示:
/ /用户登录。h文件,提供函数声明
Int IsValidUser(char *用户名,int namelen);
/ /用户登录。C文件来验证用户信息
Int IsValidUser(char *用户名,int namelen)
{
Int IsValid = 0;
下面是具体的处理代码
返回的有效性
}
如果每个项目是由这两个用户登录保存。H和UserLogin。C文件,将有几个
事故:
1,每个项目都有一个重复的模块,导致代码重复。
2、代码的可重用性不好,一旦isvaliduser代码更改,以保持设计的一致性,
我们还必须手动修改UserLogin。在其他项目中的C文件,既费时费力又容易出错。
库文件是公共代码的组织。
为了解决上述两个缺点,本文提出了一种利用库文件存储公共代码的方案。要点是
将目标代码与项目分开,并将其存储在库文件中。
使用此代码时,可以在编译或运行库文件时从库文件中获得目标代码。
它分为两类:静态库和动态库。
二、静态库和动态库
如果在编译时加载程序加载库文件,则使用静态库,
换句话说,如果使用静态库,静态库代码在编译时被复制到程序的代码段。
程序的容量扩展了。如果使用动态库,程序中只保留库文件的名称和函数名,并在运行时找到它。
程序的体积在库文件和函数体的大小上几乎没有变化。
静态库的原理是在时间上空间,增加程序的体积,减少运行时间;
动态库是它及时改变了空间,增加了运行时间,但减少了程序本身的体积。
让我们看看如何在实际例子中使用这两个库。
三。静态库的编写与使用
1。概述
静态库文件的扩展通常是A,其编写步骤很简单。
写函数代码
编译器生成目标文件。
使用AR文件归档的目标,生成一个静态库文件。
注意,存档的文件名必须由库头负责。
使用要点:
静态库头文件中的i参数GCC中的路径。
GCC库文件中的L参数和目录
在L参数GCC中使用数据库文件名,但要删除库和扩展名。
例如,库文件的名字是libtest。然后参数-测试
2。编写最简单的静态库文件
编写以下两个文件并注意同一目录
myalib。H / /静态库的头
Myalib。C / /静态库文件
的 / / myalib h文件的内容。
空洞测试();
的 / / myalib C文件的内容。
#是
空洞测试()
{
printf(检验);
}
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。