friend 们,在探索Redis的源代码时,在sds.h中,我看到重复的声明(定义)函数如下:
static inline size_t sdslen(const sds s) {
struct sdshdr *sh = (void*)(s-(sizeof(struct sdshdr)));
return sh->len;
}
size_t sdslen(const sds s);
为什么有两个sdslen没有报错?那有什么影响呢?
最佳答案
第二行是多余的。定义也是声明。您可以多次声明一个函数或对象,只要它们不冲突即可。
关于c - 为什么C头文件中同名的函数声明和函数定义可以(来自redis源码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22692870/