| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 953 人关注过本帖
标题:[求助]请问如何把自己写的函数制成库文件
只看楼主 加入收藏
fantasyop
Rank: 1
等 级:新手上路
帖 子:71
专家分:0
注 册:2005-2-25
收藏
 问题点数:0 回复次数:2 
[求助]请问如何把自己写的函数制成库文件
请问如何把自己写的函数制成库文件 比如自己写了happen函数
void happen(int a ); 怎么制成happen.h文件
搜索更多相关主题的帖子: 库文件 函数 happen void 
2005-09-03 18:07
zhijin
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2004-9-29
收藏
得分:0 
你把写好的函数把文本文件后缀改成*.h 放到INCLUDE文件夹里去
改后缀就不用说拉吧  
但是库函数好象和函数  有些很大的不同哦  你能写库函数 好强哦

[此贴子已经被作者于2005-9-3 21:45:07编辑过]



2005-09-03 21:32
yuki
Rank: 2
等 级:新手上路
威 望:5
帖 子:508
专家分:0
注 册:2005-2-4
收藏
得分:0 
我看了《C语言程序设计艺术》这本书,上面又如何创建库的内容,其创建格式如下:
比如有个工具包A.H,首先创建接口
/* A.H */
#ifndef __A_H
#define __A_H

f1();
f2();
f3();
......
#endif
这里的f1,f2,f3是指库中包含哪些外导的函数(所谓外导就是客户可以使用的函数),定义__A_H的目的是防止该头文件被反复包含。然后封装函数包:
/* A.C */

#include "A.h"

f1() {
...
}

f2() {
 ...
}

f3() {
 ...
}
这样就完成了一个库,用户在使用时只要包含头文件"A.h"就行了,如果A.c中有个sub()函数,这个函数不为客户所使用的话,请按照如下声明该函数:
static <ReturnType> <function name>(Argumets) {
...
}
这里的static关键词被放在了函数返回类型前面,目的就是让该函数私有,不对其他模块所享用,所以这里的static就可以理解为private的意思。
这就使标准库的写法,不过书上好像没有提到如何编译(我认为必须将A.c生成为A.lib后包含A.h才有效,否则会造成编译错误)
我本人写库的方法(仅供参考):
首先写封装:
/* A.c */
f1() {
...
}
f2() {
....
}
f3() {
...
}
...
然后写接口:
/* A.h */
#ifndef __A_H
#define __A_H

// 将封装包含入头文件
#include "A.c"

//这里写封装中用到的宏定义
#define ...
#define ...
//这里可以写数据结构
struct {
....
};
typedef enum {....};
类似的自定义类型都写在这里。
//然后下面就是导入函数
extern f1();
extern f2();
extern f3();
//最后结束宏
#endif

我们都在命运湖上荡舟划桨,波浪起伏使我们无法逃离孤行;如果我们迷失方向,波浪将指引我们穿过另一天曙光
2005-09-03 22:12
快速回复:[求助]请问如何把自己写的函数制成库文件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017001 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved