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

标签 c syntax strlen

我可能要疯了,但我认为我从未在 C++ 中看到过这种情况(尽管我的引用代码是在 C 中)。为什么这里代码的返回值上有一个static,有什么影响?我认为我从未见过类范围之外的静态函数(但显然 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 .

最佳答案

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

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

关于c - static size_t strnlen(const char *s, size_t max) -- 为什么是静态返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8884255/

相关文章:

c - 如何安全使用strnlen?

c++ - 为什么我的(重新)实现 strlen 是错误的?

c++ - "defau1t:"(不是 "default:")是标签的有效值吗?

javascript - '+new Date' 中的加号有什么作用

syntax - Octave 中变量前面的@符号的目的是什么?

python - 奇怪的Python语法,或者在打印语句中

c - 检查字符串卡住的函数

c - dup2 函数和程序行为

c - 进程同步- TestAndSetLock

c - 编译简单链表程序时出现未声明节点错误