开发者社区 问答 正文

为什么使用这个程序时要通过下列方式获取其地址?

为什么在使用RedisModule_GetApi之前要通过((void**)ctx)[0]这种方式获取其地址?

展开
收起
萝卜丝丸子 2024-06-03 19:37:31 50 分享 版权
1 条回答
写回答
取消 提交回答
  • RedisModuleCtx是Redis内核中定义的数据结构,对module来说是不透明的。由于getapifuncptr是RedisModuleCtx的第一个成员,因此可以通过((void**)ctx)[0]这种“巧妙”的方式来直接访问它,从而获得RedisModule_GetApi函数的地址。

    2024-06-03 20:29:38
    赞同 展开评论