打印
[嵌入式linux]

问一个关于c语言中静态变量的问题

[复制链接]
1960|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yangvu|  楼主 | 2008-9-4 12:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
手头没有仿真工具,要不然自己可以单步执行了看一下,所以在此请教一下

有这样一个函数,里面定义了一个静态变量index0:
void rcvdata ( void )
{
    static int index0 = 0;
    其他执行语句
}

我想问一下,是否每次调用此函数的时候静态变量index0都被赋一下0,还是index0保持为上次执行之后的结果,因为这里定义index0的语句中同时给它赋0.

相关帖子

沙发
HWM| | 2008-9-4 12:29 | 只看该作者

若是静态变量,只是在进入主程序前初始化一次。

而若是一般局部变量(不含static),则每次进入到其作用域都将对其初始化一次。

使用特权

评论回复
板凳
yangvu|  楼主 | 2008-9-4 17:26 | 只看该作者

re

你说的主函数是指哪个函数

使用特权

评论回复
地板
HWM| | 2008-9-5 07:51 | 只看该作者

re LZ:main()

使用特权

评论回复
5
sodwell| | 2008-9-5 08:41 | 只看该作者

re

static的你就想象初始化一次后,以后就再也不对他初始化了,所以他保持以前的值不变

使用特权

评论回复
6
yangvu|  楼主 | 2008-9-5 08:50 | 只看该作者

re

Thank you,sodwell and HWM.

使用特权

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

本版积分规则

5

主题

54

帖子

0

粉丝