链表开始前的准备 之 tools(工具)、包裹函数

         学习链表这么长时间了,趁着今晚有时间,感觉总结一下,这次真感觉跟着驰哥学习了不少的东西,对于这次链表,终于有了真正意思上写C语言的感觉吧,虽然买了C语言的接口与实现,不过现在没时间看,等链表这一块完全学习完在看吧。C语言也可以写的很漂亮的,组件化思想,也就是模块化,写一个东西就在里面套、套、套模块,有点像玩积木的感觉。不过开始写链表之前,先来一篇这个东西tools,简单说就是写一个工具,方便其他文件的调用,因为这次我在Centos6.5下gcc代码的时候遇到了问题。for example  在C语言中没有bool值,于是自己定义呗,在不同的文件中都定义 typedef unsigned char Boolean;就会出错,报错为Boolean重定义,但是在redhat7.0下却没有这样的错误。起始这个东西写在tools.h文件中,用的时候直接调用tools.h,也就不用自己在写了。还有我们经常用到的宏定义,都可以写在里面去,来看看代码吧!

这个是tools.h文件


#ifndef _TOOLS_H_
#define _TOOLS_H_

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define TRUE        (1)
#define FALSE       (0)
#define ZERO        (0)
#define ONLY_ONE   (1)
#define ERROR      (-1)


//  定义也就是像C++中的bool类型
typedef unsigned char Boolean;


//工具类接口
void *Malloc(size_t size);               //申请内存的包裹函数
void swap(void *a, void *b, int length);// 实现交换 memcpy内存的拷贝

#endif

这个是tools.c文件

#include "tools.h"


//申请内存的包裹函数
void *Malloc(size_t size)
{
    void *result = malloc(size);
    if(result == NULL){
        fprintf(stderr, "the memory is full!\n");
        exit(1);
    }
    return result;
}


// 实现交换 memcpy内存的拷贝
void swap(void *a, void *b, int length)
{
    void *temp = Malloc(length);
 
    memcpy(temp, a, length); 
    memcpy(a, b, length); 
    memcpy(b, temp, length);    

    free(temp);
}

包裹函数用起来还不错,省去很多重复的代码,就上面的malloc,下次就用Malloc,对于出错的话,也就写一回,是不是很方便啊。赶紧写自己的tools吧

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值