打印
[PIC®/AVR®/dsPIC®产品]

C语言中的静态(static)函数你会用吗?

[复制链接]
1147|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
事情是从下面这个函数开始的
static void dap_delay_us(int delay)
{
while (delay)
{
int del = (delay > 100000) ? 100000 : delay;
DAP_CONFIG_DELAY((DAP_CONFIG_DELAY_CONSTANT * 2 * del) / 1000);
delay -= del;
}
}
你知道这个函数的声明类型static是什么意思吗?
很多人知道定义变量用这个叫静态变量
那么修饰函数那肯定就是静态函数了,静态函数该如何理解?

在函数的返回类型前加上关键字static,函数就被定义成为静态函数。函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。
C语言中使用静态函数的好处:
(1)、静态函数会被自动分配在一个一直使用的存储区,直到程序结束才从内存消失,避免调用函数时压栈出栈,速度快很多
(2)、其他文件可以定义相同名字的函数,不会发生冲突
(3)、静态函数不能被其它文件调用,作用于仅限于本文件



使用特权

评论回复
沙发
gygp| | 2023-6-6 18:05 | 只看该作者
c语言中静态变量是怎么用的              

使用特权

评论回复
板凳
小灵通2018| | 2023-6-7 22:09 | 只看该作者
静态变量懂,这个静态函数第一次听说,原来是这样的,只在本文件可见啊。。。

使用特权

评论回复
地板
maudlu| | 2023-6-10 11:39 | 只看该作者
用于在函数中声明“静态变量”用,在每一次调用后,该变量并不在函数返回时立即释放,变量中保存的值,可以保留到下一次调用时继续有效。

使用特权

评论回复
5
youtome| | 2023-6-10 11:47 | 只看该作者
在C语言中具体静态变量static要这么去用?

使用特权

评论回复
6
mollylawrence| | 2023-6-10 12:46 | 只看该作者
其他文件可否调用文件中的static函数?

使用特权

评论回复
7
usysm| | 2023-6-10 13:22 | 只看该作者
static在c语言中是私有、静态意思。

使用特权

评论回复
8
wangdezhi| | 2023-6-10 13:43 | 只看该作者
静态变量,保存 p;若不加static,一旦子函数 退出后,该变量将丢失,加了,就会保持住,下次回来的时候,这个值依然存在。

使用特权

评论回复
9
wengh2016| | 2023-6-10 13:55 | 只看该作者
在每一次调用后,该变量并不在函数返回时立即释放,变量中保存的值,可以保留到下一次调用时继续有效。

使用特权

评论回复
10
uiint| | 2023-6-10 14:06 | 只看该作者
c语言 static 作用范围是什么呢?

使用特权

评论回复
11
lzbf| | 2023-6-10 17:07 | 只看该作者
静态成员函数主要用来方位静态数据成员而不能访问非静态成员。

使用特权

评论回复
12
10299823| | 2023-6-10 17:53 | 只看该作者
动态函数执行结束后,函数占用的内存会被注销掉,数值不保留,静态就可以保留数值

使用特权

评论回复
13
iyoum| | 2023-6-13 21:20 | 只看该作者
静态函数可以避免与其他程序模块的函数重名,有助于提高代码的可维护性和可靠性。

使用特权

评论回复
14
belindagraham| | 2023-6-13 22:00 | 只看该作者
在函数里的static变量意味着这个变量的生存期是全局

使用特权

评论回复
15
chenci2013| | 2023-6-13 22:41 | 只看该作者
静态函数在编译时就已经确定了地址,因此调用速度更快。

使用特权

评论回复
16
mattlincoln| | 2023-6-14 10:04 | 只看该作者
隐藏、保持变量内容的持久、默认初始化为0。

使用特权

评论回复
17
chenci2013| | 2023-6-14 10:30 | 只看该作者
调用到的函数要在调用的位置的前面有所声明或者定义。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:西安公路研究院南京院
简介:主要工作从事监控网络与通信网络设计,以及从事基于嵌入式的通信与控制设备研发。擅长单片机嵌入式系统物联网设备开发,音频功放电路开发。

1958

主题

15904

帖子

207

粉丝