我尝试在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/