如何书写权威的程序库头文件

本文详细介绍了如何编写专业的C++库头文件,包括版权格式、文档说明、注释风格、宏定义、类型定义等内容,并强调了统一性和专业性的重要性。

摘要:本文主要讨论如何书写权威的库头文件-c or cplusplus.
如何书写权威的头文件?
这是个问题
如果看得代码多了,经验多了是不是可以得出权威的头文件应该满足这个样子?
1.必要的版权格式或者文档说明
2.作者,日期,地点,版本等信息
3.如果有必要尽可能不要使用中文,这些写出来的文件看上去很牛逼
4.关于注释:使用统一的注释风格 这样弄出来的文件看上去很有美感
5.尽可能使用统一的文件编辑器,免得影响在其他编辑器出来的效果
6.使用宏防止重复包含头文件
    比如 #ifndef ..
7.考虑库是不是平台相关的
如果必要加上判断平台的宏 这样读者会感觉专业很多    
8.如果必要重新定义基本类型
比如typedef unsigned int uint.----为了打造权威 我们一定要这样做
9.为了进一步巩固我们的权威形象-我们可以根据平台加入需要的头文件
比如:

#if  defined(__FreeBSD__) && (__FreeBSD__ >= 2)
/*  Needed for __FreeBSD_version symbol definition  */

#else

#endif

10.尽可能的多使用宏
比如一般情况下TRUE都是定义过的
为了体现库的权威性 我们这样弄

#ifndef TRUE
#define  TRUE 1
#endif

11.如果是c接口的库
头文件还需要加上

#ifdef  __cplusplus
extern   " C "  {
#endif

12.对于命名格式 在保持统一的情况下我们最好不采用一般的命名格式
不要使用通用的setValue也不采用SetValue或者set_value
那如何写呢?
可以这样
XX_setValue 在这里XX代表库的缩写
比如Python 就是Py
专家就是要和别人不一样
13.如果是cplusplus库接口,那么库的头文件中尽可能的使用抽象基类,甚至使用虚析构函数。
如果需要或者对象指针我们可以增加一个接口比如GetObject
14.头文件尽可能的不要包含不相关的内容-原则让用户知道她想知道的隐藏她不需要的
15.对于句柄类的我们一定要使用pimpl技法
比如lua中的lua_State句柄就是typedef struct lua_State lua_State;
16.如果需要命名空间,一般情况下我们会这样比如:

namespace  core
{
..
}

考虑到第10个原则这样弄吧
还是使用宏

#define  BEGIN_CORE_NAMESPACE namespace {
#define  END_CORE_NAMGESPACE }

比如QT中就是这样弄得

BEGIN_QT_NAMESPACE
     
class  QLabel;
     
class  QSpinBox;
     
class  QSlider;
     
class  QAction;
END_QT_NAMESPACE 

freetype中类似的是FT_BEGIN_HEADER
17.如果需要导出链接
如果这样写只能说明你是初级水准
GAPI void G_CALL gTerminate();
那如何写你?
做法就是再定义一个后
比如
#define G_EXPORT(para) GAPI para G_CALL
然后这样使用
G_EXPORT(void) gTerminate();
如果这样弄不想权威也不行
18.总结:
权威就是要让别人不能置否,要让读者知道这样就是对的。

PS:如果坚持这样,过不了多久,你肯定就是权威
附注:虽然一切都是神马

 

转自 http://www.cppblog.com/gaimor/archive/2011/03/17/142057.html

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值