首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C++中的静态函数

C++中的静态函数
EN

Stack Overflow用户
提问于 2011-03-16 07:41:41
回答 3查看 127.4K关注 0票数 177

在C中使函数成为静态函数的意义是什么?

EN

回答 3

Stack Overflow用户

发布于 2011-03-16 07:51:33

C中的static关键字用于编译后的文件(.c而不是.h),因此函数只存在于该文件中。

通常,当您创建一个函数时,编译器会生成cruft,链接器可以使用它将函数调用链接到该函数。如果使用static关键字,则同一文件中的其他函数可以调用此函数(因为无需借助链接器即可完成),而链接器没有允许其他文件访问该函数的信息。

票数 30
EN

Stack Overflow用户

发布于 2014-12-16 08:17:22

C程序员使用静态属性在模块中隐藏变量和函数声明,就像在Java和C++中使用公有和私有声明一样。C源文件扮演着模块的角色。使用static属性声明的任何全局变量或函数对该模块都是私有的。类似地,没有使用static属性声明的任何全局变量或函数都是公共的,并且可以由任何其他模块访问。尽可能使用static属性来保护您的变量和函数是一种很好的编程实践。

票数 5
EN

Stack Overflow用户

发布于 2020-06-04 19:18:57

当需要限制对某些函数的访问时,我们将在定义和声明函数时使用static关键字。

代码语言:javascript
复制
            /* file ab.c */ 
static void function1(void) 
{ 
  puts("function1 called"); 
} 
And store the following code in another file ab1.c

/* file ab1.c  */ 
int main(void) 
{ 
 function1();  
  getchar(); 
  return 0;   
} 
/* in this code, we'll get a "Undefined reference to function1".Because function 1 is declared static in file ab.c and can't be used in ab1.c */
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5319361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档