我尝试在C中以及https://github.com/c9s/r3的github页面上使用R3Route URL路由器,我看到以下内容:

#include <r3/r3.h>

// create a router tree with 10 children capacity (this capacity can grow dynamically)
R3Node *n = r3_tree_create(10);

int route_data = 3;

// insert the R3Route path into the router tree
r3_tree_insert_path(n, "/bar", &route_data); // ignore the length of path


有人可以告诉我这里的route_data吗?为什么是3?

谢谢

最佳答案

我只是检查了这个库的源代码,我发现了这一点:

#define r3_tree_insert_path(n,p,d) r3_tree_insert_pathl_ex(n,p,strlen(p), NULL, d, NULL)


d是您的int = 3

这是该功能的新原型

R3Node * r3_tree_insert_pathl_ex(R3Node *tree, const char *path, int path_len, R3Route * route, void * data, char **errstr)


在这个函数中,数据仅用于此行

if (route) {
        route->data = data;
}


route是可以在r3.h中找到定义的结构

我在代码中到处搜索此int均未成功。

如果使用此结构(R3Route),则通过在结构中将参数传递为void *可能很有用,但是您应尝试将int *更改为NULL并尝试执行编。我不是真的有用,因为我不知道这个库,但这就是我发现的一切。 :)

关于c - C中的R3Route URL路由器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36346461/

10-13 08:02