C中的'static void *'是啥意思? [复制]

Posted

技术标签:

【中文标题】C中的\'static void *\'是啥意思? [复制]【英文标题】:What is the meaning of 'static void *' in C? [duplicate]C中的'static void *'是什么意思? [复制] 【发布时间】:2017-02-27 03:19:24 【问题描述】:

我是 C 新手,最近在学习 zeromq(工作相关)时,我对静态 void * 有点困惑:

...
static void *
worker_task(void *args)

...

那条线的确切含义是什么?我试图寻找答案,我认为它是一个指针,但这有点奇怪,因为指针通常在“*”之后有一个变量名。

非常感谢,我希望我提出这个看似“新手”的问题并不失礼。 :)

【问题讨论】:

请注意,在两条不同的行上的分隔是无效的。示例与static void *worker_task(void *args) 同为一行。 哦,我还以为是两行!非常感谢您的回答。 【参考方案1】:

函数worker_task 返回一个void *

函数定义前面的static 关键字意味着该函数只能在当前编译单元内查看,即给定的目标文件,通常由一个包含多个包含文件的源文件构建。从可能与包含该函数的文件链接的其他目标文件中看不到该函数。

【讨论】:

我认为这个答案有点草率。如果函数出现在头文件中,那么它对包括该头文件在内的任何人都是“可见的”,但它在每个翻译单元中都是一个单独的实体。重点是static 使函数名具有内部链接

以上是关于C中的'static void *'是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

`public static void main args` 是啥意思?

C中的“void (*f)(void)”是啥意思

C语言中的VOID()是啥意思

C、C++ 和 C# 中的 void 是啥意思?

C中的“静态”是啥意思?` [重复]

c语言中case是啥意思