c语言如何解封装库函数 c语言怎么封装函数实例

怎么在c语言中自己写库函数1、不同c语言如何解封装库函数的系统开发函数库c语言如何解封装库函数的具体步骤是不一样的c语言如何解封装库函数,这主要决定于编译、链接环境 。
2、不同的库开发方式也不一样c语言如何解封装库函数,现在主流的库开发有两种c语言如何解封装库函数,一种是静态库,一种是动态库,两者的本质区别是库代码是否和程序融合在一起,如果组装在一起就是静态库,如果不组装在一起,即为动态库,现在操作系统提供的多数是动态库,如Linux平台的.so文件,windows平台的DLL文件 。
3、以Windows平台为例 , 用户可以通过Vc/vs等IDE集成开发环境,生成DLL工程,然后编写def文件进行导出 。
C语言中如何将自己常用的函数封装到编译器的库函数中具体应该怎么做呢?用编译器提供的库管理工具 。
C语言的编译器都会提供一个命令行工具 , 可以把自己编译后的.obj模块加入指定的库文件,以后使用时只需要连接该库文件即可 。这个命令行工具通常是lib.exe,用这个工具可以查看库中的模块,可以把模块加入到库中 , 可以从库中删除模块 。这个工具不仅仅是自己建立的库文件的管理工具,可以管理所有的库文件,包括C语言提供的标准库 。
C语言:如何自己做库函数?简单的一个例子,但是基本的程序编译的思想都在里面了,具体的需要你自己体会和查资料
跟着下面的步骤走
------------------------
第一步:我的电脑-属性-高级-环境变量
添加3个变量
1.名字:path 值:vc的安装目录里面包含cl.exe的bin目录路径 ";" vc目录下包含mspdb80.dll的目录的路径
【c语言如何解封装库函数 c语言怎么封装函数实例】比如我的是D:\Program Files\Microsoft Visual Studio 8\VC\bin;D:\Program Files\Microsoft Visual Studio 8\Common7\IDE;
2.名字:include 值:vc安装目录下的include目录,主要是为了找到头文件,我的是D:\Program Files\Microsoft Visual Studio 8\VC\include;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include;
3.名字:lib 值:vc目录下包含库文件的目录路径
我的是D:\Program Files\Microsoft Visual Studio 8\VC\lib;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib;
第二步:需要下面两个文件
//-------------libdemo.c
#include stdio.h
void lib_func()
{
printf("this routine in lib\n");
}
//------------main.c
void lib_func();
int main(int argc, char *argv[])
{
lib_func();
}
第三步:命令
cl /c libdemo.c'编译libdemo.c 生成libdemo.obj
liblibdemo.obj'生成libdemo.lib 库文件
cl /c main.c'编译main.c
link main.objlibdemo.lib'生成main.exe
---------------------------------------------------
呵呵 加点东西,参看4楼的建议 , 在做个dll,COM组件就不做了,有点复杂了
1 。把libdemo.c 稍微改下
//-------------libdemo.c
#include stdio.h
__declspec (dllexport) void lib_func()
{
printf("this routine in lib\n");
}
2 。命令
cl /c libdemo.c main.c
link libdemo.obj /dll'生成libdemo.lib
link main.obj libdemo.lib
如何在我的C语言程序中插入库函数int
add(int
x,int
y);
int
sub(int
x,int
y);
int
mul(int
x,int
y);
int
div(int
x,int
y);
#include
math.h
#include
stdio.h
void
main()
{
int
a,b,c,d,e,f,g,h,i;
printf("XXXXXXXXXXXXXXX计算器");
printf("\n");
for(c=1;c=30;c)
printf("*");
printf("\n");
printf("请输入一个整数");
printf("\n");
scanf("%d",a);
printf("\n");
for(c=1;c=30;c)
printf("-");
printf("\n");
printf("请选择您要做的运算:1. ,2.-,3.*,4./5.abs,6.sqrt");
printf("\n");
for(c=1;c=30;c)
printf("*");
printf("\n");
scanf("%d",d);
printf("\n");
if(d==5)
{printf("%d",abs(a));goto
end;}(如果想做绝对值,就直接做abs函数(它是个库函数).做完后就goto"end"--也就是函数的最后.)
if(d==6)
{printf("%.2f",sqrt(a));goto
end;};}(如果想做开平方,就直接做sqrt函数(它是个库函数).做完后就goto"end"--也就是函数的最后.)
printf("请再次输入一个整数");
(如果是做双目的就开始输入第二个数b)
printf("\n");
scanf("%d",b);
printf("\n");
switch(d)
{
case
1:add(a,b);break;
case
2:sub(a,b);break;
case
3:mul(a,b);break;
case
4:div(a,b);break;
default:printf("date
input
error!\n");
}
end:
printf("\n");}
int
add(int
x,int
y)
{
int
m;
m=x y;
printf("%d",m);
return
m;
}
int
sub(int
x,int
y)
{
int
m;
m=x-y;
printf("%d",m);
return
m;
}
int
mul(int
x,int
y)
{
int
m;
m=x*y;
printf("%d",m);
return
m;
}
int
div(int
x,int
y)
{
int
m;
m=x/y;
printf("%d",m);
return
m;
}
(你试试看吧!应该可以!呵呵)
C语言中重新实现库函数fgets是从文件读取,getchar是从输入读取 , 两个还是有区别的
怀疑是gets
如果一定要用fgets的话,那么可以先用freopen重定向输入,来使fgets和getchar的定向相同
以下用gets实现或者被实现
含测试函数main
#include stdio.h
int str_to_int(char *str)
{
int sign = 1;
int ret = 0;
char *p;
p = str;
if(*p == ' ') p;
else if(*p == '-') sign = -1, p;
while(*p)
{
if(*p = '0'*p= '9')
ret = ret * 10(*p - '0');
else break;
p;
}
return sign * ret;
}
int get_int_with_getchar()
{
char a[20] = {0};
int i = 0;
while(i19)
{
a[i] = getchar();
if(a[i] == '\n')
break;
i;
}
a[i] = 0;
return str_to_int(a);
}
int get_int_with_gets()
{
char a[20] = {0};
gets(a);
return str_to_int(a);
}
void gets_with_getchar(char *str)
{
int i = 0;
if(str == NULL) return;
do
{
str[i] = getchar();
}while(str[i] != '\n' );
}
char *do_strchr(char *src, const char c)
{
char *p = src;
while(*p*p!= c) p;
if(*p != c) return NULL;
return p;
}
int do_isdigit(char c)
{
return c = '9'c = '0';
}
int do_isalpha(char c)
{
return (c = 'Z'c = 'A') || (c = 'z'c = 'a');
}
int main()
{
int a;
char test[100] ;
a = get_int_with_getchar();
printf("get_int_with_getchar = %d\n", a);
a = get_int_with_gets();
printf("get_int_with_gets = %d\n", a);
gets_with_getchar(test);
printf("gets_with_getchar = %s\n", test);
printf("do_strchr %s %s\n", do_strchr(test, 'a'), do_strchr(test, 'b'));
printf("do_isdigit = (%d,%d) \n", do_isdigit('1'), do_isdigit('a'));
printf("do_isalpha = (%d,%d) \n", do_isalpha('1'), do_isalpha('a'));
}
c语言如何解封装库函数的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于c语言怎么封装函数实例、c语言如何解封装库函数的信息别忘了在本站进行查找喔 。

    推荐阅读