免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: 风间星魂
打印 上一主题 下一主题

跟风:发一段自己刚写的劣质代码供批判 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2012-04-07 21:57 |只看该作者
AD8018 发表于 2012-04-07 20:36
为什么要重新define malloc呢?


我们工程里也使用了类似的语句,没问过为什么。我猜可能是考虑替换方便,哪天想要用realloc或是alloc替换malloc的话,直接改这个宏就行了。

论坛徽章:
0
22 [报告]
发表于 2012-04-07 22:07 |只看该作者
本帖最后由 风间星魂 于 2012-04-07 22:56 编辑
lsnl8480 发表于 2012-04-07 21:57
我们工程里也使用了类似的语句,没问过为什么。我猜可能是考虑替换方便,哪天想要用realloc或是alloc替 ...



宏替换掉方便

论坛徽章:
0
23 [报告]
发表于 2012-04-09 11:20 |只看该作者
本帖最后由 rqzrqh 于 2012-04-09 11:21 编辑

typedef struct __curl_buf {
    char *_data;
    int _size;
    int _mem;
    int _ref;
}curl_buf;
__curl_buf 这个是不需要的,curl_buf我更喜欢curl_buf_t

static inline curl_buf* _curl_buf_init()
{
    curl_buf *buf = malloc(sizeof(curl_buf));
    buf->_size = 0;
    buf->_mem = 128;
    buf->_data = malloc(buf->_mem);
    buf->_ref = 1;
    return buf;
}
分配失败都没检测。命名我认为可以改得更好一些,init是传递函数进去后执行init,new_init更准确。

变量前缀用下划线就不说了,函数名前缀居然也用下划线。

if (!_curl_buf_isonly(*object)) {
        t = _curl_buf_copy(*object);
        _curl_buf_uref(*object);
        *object = t;
    }
_curl_buf_isonly(*object),函数的定义中是返回int类型,建议用标准的返回0表示正常,负数表示错误;这里用自定义的BOOL类型来表示会更符合这个函数的功能以及返回值。
整数值返回要判断整数值,这种取反判断方法适合返回类型为BOOL类型的函数。

论坛徽章:
0
24 [报告]
发表于 2012-04-09 11:48 |只看该作者
本帖最后由 风间星魂 于 2012-04-09 11:50 编辑
rqzrqh 发表于 2012-04-09 11:20
typedef struct __curl_buf {
    char *_data;
    int _size;


下划线是规范。表示私有。
malloc那个已经是宏替换成别得了

bool那个确实,但我又不想用到c99和其他自定义bool冲突。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP