【问题标题】: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) 同为一行。
  • 哦,我还以为是两行!非常感谢您的回答。

标签: c static void


【解决方案1】:

函数worker_task 返回一个void *

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

【讨论】:

  • 我认为这个答案有点草率。如果函数出现在头文件中,那么它对包括该头文件在内的任何人都是“可见的”,但它在每个翻译单元中都是一个单独的实体。重点是static 使函数名具有内部链接
猜你喜欢
  • 2019-11-23
  • 2011-01-24
  • 2014-02-20
  • 2019-12-08
  • 2015-05-30
  • 2013-01-02
  • 2018-05-05
  • 1970-01-01
相关资源
最近更新 更多