免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1399 | 回复: 6
打印 上一主题 下一主题

看不懂的宏定义 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-09 16:38 |只看该作者 |倒序浏览
在apache源码中有类似如下的宏定义

#define APR_IMPLEMENT_EXTERNAL_HOOK_BASE(ns,link,name) \
link##_DECLARE(void) ns##_hook_##name(ns##_HOOK_##name##_t *pf,const char * const *aszPre, \
                                      const char * const *aszSucc,int nOrder) \
    { \
    ns##_LINK_##name##_t *pHook; \
    if(!_hooks.link_##name) \
        { \
        _hooks.link_##name=apr_array_make(apr_hook_global_pool,1,sizeof(ns##_LINK_##name##_t)); \
        apr_hook_sort_register(#name,&_hooks.link_##name); \
        } \
    pHook=apr_array_push(_hooks.link_##name); \
    pHook->pFunc=pf; \
    pHook->aszPredecessors=aszPre; \
    pHook->aszSuccessors=aszSucc; \
    pHook->nOrder=nOrder; \
    pHook->szName=apr_hook_debug_current; \
    if(apr_hook_debug_enabled) \
        apr_hook_debug_show(#name,aszPre,aszSucc); \
    } \
    APR_IMPLEMENT_HOOK_GET_PROTO(ns,link,name) \
    { \
        return _hooks.link_##name; \
    }


两个##表示什么 ,起什么作用?????????????????????????

论坛徽章:
0
2 [报告]
发表于 2005-12-09 16:40 |只看该作者
2个#翻译过来就是一个#

论坛徽章:
0
3 [报告]
发表于 2005-12-09 17:24 |只看该作者
还是不明白怎么用

论坛徽章:
0
4 [报告]
发表于 2005-12-09 19:00 |只看该作者
##用来把两个符号粘接在一起

论坛徽章:
0
5 [报告]
发表于 2005-12-09 20:43 |只看该作者

关于##

呵呵,ktdid说的没有错,##的作用是简单的把两个符号连接在一起
比如:a##b,结果就是ab

论坛徽章:
0
6 [报告]
发表于 2005-12-10 09:55 |只看该作者
楼主在看apache源码啊?我也在看啊?
楼主有没有想过找个什么工具,将其中的宏全不替换成可以阅读的格式呢?否则也太难看懂了吧.

论坛徽章:
0
7 [报告]
发表于 2005-12-10 11:12 |只看该作者
楼上大哥有什么好的工具可以替换宏呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP