研究lighttpd1.4.28代码的时候,到缓存调用部分,有这么一句:

1
buffer_copy_string_len(modules->key, CONST_STR_LEN("server.modules"));

而此参数声明的时候是这样的

1
int buffer_copy_string_len(buffer *b, const char *s, size_t s_len);

怎么是三个参?从CONST_STR_LEN入手,这是一个宏

1
#define CONST_STR_LEN(x) x, x ? sizeof(x) - 1 : 0

这不就成了三个参了?记一笔…

发表评论