C语言接口与实现-创建可重用软件的技术(笔记12)


Ring_T  环(双向链表)


一个5元素环:
/* head永远指向sing[0].
*  一个5元素环:
*      lo                      hi
*      1   2   3   4   5   6   > 位置
*      ---------------------
*      | 0 | 1 | 2 | 3 | 4 |   > 索引
*      | a | b | c | d | e |   > 值
*      ---------------------  
*     -5  -4  -3  -2  -1   0   > 位置
*        ^
*        |
*       head
*
* */

接口:
T Ring_new (void);
T Ring_ring(void *x, ...);
void Ring_free  (T *ring);
int  Ring_length(T  ring);
void *Ring_get(T ring, int i);
void *Ring_put(T ring, int i, void *x);
void *Ring_add(T ring, int pos, void *x);
void *Ring_addlo(T ring, void *x);
void *Ring_addhi(T ring, void *x);
void *Ring_remove(T ring, int i);
void *Ring_remlo(T ring);
void *Ring_remhi(T ring);
void Ring_rotate(T ring, int n); /* 对ring旋转进行重新编号 */

实现文件:
include/ring.h
src/ring.c

 

 

ring.h

/* $Id: ring.h 6 2007-01-22 00:45:22Z drhanson $ */
#ifndef RING_INCLUDED
#define RING_INCLUDED
#define T Ring_T
typedef struct T *T;
extern T Ring_new (void);
extern T Ring_ring(void *x, ...);
extern void Ring_free  (T *ring);
extern int  Ring_length(T  ring);
extern void *Ring_get(T ring, int i);
extern void *Ring_put(T ring, int i, void *x);
extern void *Ring_add(T ring, int pos, void *x);
extern void *Ring_addlo(T ring, void *x);
extern void *Ring_addhi(T ring, void *x);
extern void *Ring_remove(T ring, int i);
extern void *Ring_remlo(T ring);
extern void *Ring_remhi(T ring);
extern void Ring_rotate(T ring, int n);
#undef T
#endif

 

 

 

ring.c

/* 环(双向链表) */

/* head永远指向sing[0].
* 一个5元素环:
*      lo                      hi
*      1   2   3   4   5   6   > 位置
*      ---------------------
*      | 0 | 1 | 2 | 3 | 4 |   > 索引
*      | a | b | c | d | e |   > 值
*      ---------------------
*     -5  -4  -3  -2  -1   0   >

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言接口实现是一种创建重用软件技术。通过定义良好的接口,可以在不改变实现细节的情况下,实现软件的修改和扩展,同时保证软件的稳定性。这个技术支持了C语言的广泛应用,成为各种操作系统、嵌入式系统、网络通信、数据库等领域的基础语言。 通过C语言接口实现,可以将软件划分为若干个独立的模块,避免了代码的重复和混乱。每个模块都有自己的接口,这个接口将模块的功能和与外部的交互描述清楚,从而使得其他的模块可以对其进行调用。通过定义和规范接口,可以降低不同模块之间的耦合度,同时便于软件的维护和扩展。对于某个模块的修改,不会影响到其他的模块,只需要按照规范修改接口,就可以实现软件的升级和重用C语言接口实现技术优势在于其灵活性、可复用性和可扩展性。模块的接口定义可以根据具体的需求进行设计,随着需求的变化和业务的扩展,可以重新定义接口。这种技术的另一个优势在于代码的复用,相同的代码可以被多个模块共享,提高了软件开发的效率和质量。这个技术还能够实现分布式的软件系统,将不同的模块放在不同的机器或的进程中运行,从而改善系统的可伸缩性和性能。 总之,C语言接口实现创建重用软件的一种重要技术。通过定义良好的接口,可以使软件的修改和扩展变得更加容易,同时也能提高软件的可维护性和可复用性。这种技术C语言的重要特点之一,我们需要深入了解其原理和实践方式,从而开发出高效、稳定和可扩展的软件系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值