当前位置: 首页 > wzjs >正文

建站如何挣钱网上购物的设计与实现

建站如何挣钱,网上购物的设计与实现,wordpress文章末尾添加版权声明,网站ps照片怎么做最近在学习环形数组以及缓存管理的实例,一直有一个疑问那就是“既然已经有了环形数组的数据结构,以及操作环形数组的相关算法,为什么还有再更进一步将其封装成缓存管理的数据结构以及相关算法呢”?我感觉主要是有以下几点原因。一…

最近在学习环形数组以及缓存管理的实例,一直有一个疑问那就是“既然已经有了环形数组的数据结构,以及操作环形数组的相关算法,为什么还有再更进一步将其封装成缓存管理的数据结构以及相关算法呢”?我感觉主要是有以下几点原因。

一、实现“算法到数据结构”的转换,理解这一句话的前提是“程序=数据结构+算法(操作数据结构)”,也就是说缓存管理buffer_manager_struct将对环形数组ringbuffer的相关操作封装成一个个函数,通过传参的方式实现数据转换。整个过程就像将一个函数要实现的工作转换为对应数据的变化。我们后面只需要操纵数据就可以实现某些功能。从宏观上,我们无需知道函数内部是如何操作的,我们只需要知道调用哪些函数,就可以实现数据结构的读写。(有点像算法转换为了数据结构)

二、更加体现一句话:“函数就是一个数据处理器”。也就是说函数的目的是问了对数据结构对应变量进行“读+写”、“生产+消费”等操作,通过对数据结构这种操作就实现了要实现的具体功能。

typedef struct
{signed int count;signed int cnt;unsigned char ReadFlag;unsigned char SendFlag;signed int ReadLen;signed int SendLen;/**用户可自由使用以上变量 */int32_t value;      /**结构体内部使用,用户不可使用 */signed int len;     /**结构体内部使用,用户不可使用 */rb_t Buff;      /**缓存数组 */rb_t ManageBuff;    /**管理缓存数组 */
}buff_manage_struct;void BufferManageCreate(buff_manage_struct *bms, void *buff, uint32_t BuffLen, void *ManageBuff, uint32_t ManageBuffLen);
void BufferManageWrite(buff_manage_struct *bms, void *buff, uint32_t BuffLen, int *result);
void BufferManageRead(buff_manage_struct *bms, void *buff, int *DataLen);

上述代码就是缓存管理的具体实现方式。我们如果想实现具体功能,只需要定义结构体buff_manage_struct,并操作create、write、read三个相关函数即可,无需知道函数内部的具体细节。使得我们的注意力集中在数据结构上而非难懂的算法上。而且,数据结构buff_manage_struct将用到或者用不到的变量封装到了一次。我们只需要将注意力集中到这个数据结构内部成员即可。

三、ringbuff相关数据结构以及算法还是太复杂了,增加一层封装能简化应用层操作。

typedef struct
{u32 rbCapacity;  /**相当于数组长度 */char *rbHead;   /**读:头指针 */char *rbTail;    /**写:尾指针 */        /**尾插头取 */char *rbBuff;   /**数组首地址 */
}rb_t;/**心得:函数中的参数列表也相当于定义内存变量 */
void rbCreate(rb_t *rb, void *buff, u32 buff_len);
void rbDelete(rb_t *rb);
int32_t rbCapacity(rb_t *rb);
int32_t rbCanRead(rb_t *rb);    /**能读取的数据个数 */
int32_t rbCanWrite(rb_t *rb);   /**能写入的数据个数 */
int32_t rbRead(rb_t *rb, void *buff, u32 len);  /**读环形缓存到缓存中 */
int32_t rbwrite(rb_t *rb, const void *buff, u32 len); /**将缓存中的数值写到缓存中 */
int32_t PutData(rb_t *rb, void *buf, u32 len);      /**将缓存数据写到rb中 */

上述代码是ringbuffer的相关数据结构以及算法,发现算法还是很负载,而且实现的功能还是更倾向于驱动底层,我们编程的目的是利用好驱动相关程序编写好应用程序。所以封装一层能更好隐藏细节。

总之:函数是一个数据处理器,函数的内部操作最终表现就是数据结构的变化;操纵函数实现了数据结构的变化,也就是实现了应用业务逻辑。


文章转载自:

http://A7WFnxGz.znqxt.cn
http://wQXrBGvC.znqxt.cn
http://h7Nzvml5.znqxt.cn
http://6Sbzg4U3.znqxt.cn
http://fBRuAEKK.znqxt.cn
http://I6stCSFm.znqxt.cn
http://LwsE04n2.znqxt.cn
http://WTtPsDTN.znqxt.cn
http://tL0My3eN.znqxt.cn
http://Z9GpAdTH.znqxt.cn
http://FOVfbrzc.znqxt.cn
http://sxRblg5P.znqxt.cn
http://ZKp4pa3r.znqxt.cn
http://aPd9p9yj.znqxt.cn
http://EjdR3KNR.znqxt.cn
http://Ey2ezbqZ.znqxt.cn
http://4Sa77WBQ.znqxt.cn
http://WLoKnNrm.znqxt.cn
http://0nDX9vdr.znqxt.cn
http://LrOmhiAq.znqxt.cn
http://rXPFwf4k.znqxt.cn
http://Xal2Z1LS.znqxt.cn
http://4F68Ulsq.znqxt.cn
http://gwfAmy80.znqxt.cn
http://q0HpHS7w.znqxt.cn
http://bPo5EP6F.znqxt.cn
http://uv3T1QZN.znqxt.cn
http://yx7dE8Da.znqxt.cn
http://9ABLrzxK.znqxt.cn
http://NMiWVcAv.znqxt.cn
http://www.dtcms.com/wzjs/775637.html

相关文章:

  • 做相册哪个网站好西安网站建设有那些公司
  • 黄骅市属于哪个市郑州整站网站优化
  • 做门户网站私活多少钱wordpress 酒业模板
  • 网站流量渠道营销方案
  • 专业的龙岗网站建设wordpress首页幻灯片设置
  • 网站群建设官方网站建设手机银行
  • 昆明有哪些帮忙做网站的公司wordpress添加指定文章
  • 平面设计类的网站seo网站排名查询
  • 做框架模板的网站趣头条自媒体平台
  • 大型门户网站 代码网站页脚版权信息
  • 怎么做自己地网站企业微信开发
  • 开发网站申请网站建设验收报告范本
  • wordpress建站不好用网站专门做冻品的
  • 双语言网站模版logo设计免费在线制作
  • 哈尔滨论坛建站模板百度云服务器一年多少钱
  • 做网站电脑开一天用多少钱做网站的公司北京有哪些
  • 合肥 网站制作高端交易所开发
  • 屏山移动网站建设互联网公司排名500强
  • 皮革城网站建设方案网站推广到海外怎么做
  • 网站建设 字体版权ps怎么做网站logo
  • html网站简易模板当地人做导游的旅游网站
  • 黔东南网站设计公司适合初学者模仿的网站
  • 小说网站开发的目的交互设计作品集
  • 宁波网络建站公司有哪些微网站开发 付费阅读
  • wordpress怎么添加企业网站深圳住房建设局网站申报
  • 建立一个公司网站大约多少钱上海外包软件开发
  • 一个做网站的软件wordpress 开发飞猪接口
  • 建设投票网站的目的58同城网站建设方案
  • 软件开发包含网站开发吗做网站要学什么软件
  • 棠下手机网站建设电话建设国际互联网网站