这篇文章是对C语言接口和实现这本书的理解。下面是一个参考链接,对原书有详细的引用.
http://site.douban.com/107552/widget/notes/106347/note/167405435/
C语言虽然不是很擅长面向对象的设计思维,但是同样讲究能有一种可重用的设计,这里也就是接口和实现。这本书几乎就是一个C语言版本的STL的实现,通过用C实现STL来讲解C语言的接口和实现,很喜欢作者的代码风格,比如define/undef的运用,函数名称和class名称的命名方式等等,很值得细看,所以下面贴了一个stack实现的接口的例子以供参考:
#ifndef STACK_INCLUDED
#define STACK_INCLUDED
#define T Stack_T
typedef struct T *T;
extern T Stack_new (void);
extern int Stack_empty(T stk);
extern void Stack_push (T stk, void *x);
extern void *Stack_pop (T stk);
extern void Stack_free (T *stk);
#undef T
#endif