static size_t strnlen(const char * s,size_t max) - 为什么静态返回值?

时间:2012-01-16 18:01:09

标签: c syntax strlen

我可能会疯了,但我不认为我在c ++中曾经见过这个(尽管我的参考代码是在C中)。为什么这里代码的返回值有静态,它有什么影响?我不认为我曾经见过类范围之外的静态函数(但显然C没有类,这可能有不同的语法意义)。

/* just like strlen(3), but cap the number of bytes we count */
static size_t strnlen(const char *s, size_t max) {
    register const char *p;
    for(p = s; *p && max--; ++p);
    return(p - s);
}

来自http://www.zeuscat.com/andrew/software/c/strnlen.c

1 个答案:

答案 0 :(得分:6)

static不在返回类型上,而是在函数定义上

静态函数没有外部链接,基本上它们只对同一文件中的其他函数可见。