这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 讨论一个C语言的问题,关于static

共11条 1/2 1 2 跳转至

讨论一个C语言的问题,关于static

高工
2012-11-03 12:13:10     打赏
static作为C语言的一个关键词,既可以修饰变量,又可以修饰函数和指针。
那么请问:
  1.static的基本作用
   2.static修饰局部变量与修饰全局变量,以及与未加static修饰的全局变量的区别
   3.static修饰函数的作用
   4.static修饰变量的存储(ROM 还是RAM区?)与存储器的分配



关键词: 讨论     一个     语言     问题     关于     static    

高工
2012-11-03 15:22:32     打赏
2楼
作用:1、隐藏
             2、保持变量内容的持久
             3、默认初始化为0
有一本叫C语言深度剖析的书专讲这些细节问题的,网上也有PDF的,有兴趣的朋友可以去看看

院士
2012-11-04 10:27:53     打赏
3楼
我觉得主要是起到限定作用。
其它作用就像楼上说得那样。

院士
2012-11-04 10:33:49     打赏
4楼
对于函数数内的变量 来说,如果声明static 变量 ,那么当函数执行完后,该变量值依然保存。

高工
2012-11-04 13:59:28     打赏
5楼
使用全局变量不就可以做到变量值一直保存吗?为何还有在全局变量前加static修饰的?
有何差别?
另外static修饰函数呢?

高工
2012-11-04 20:15:20     打赏
6楼
全局变量和全局静态变量的区别   1)全局变量是不显式用static修饰的全局变量,但全局变量默认是动态的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。   2)全局静态变量是显式用static修饰的全局变量,作用域是声明此变量所在的文件,其他的文件即使用extern声明也不能使用。

院士
2012-11-04 21:44:07     打赏
7楼
限定作用域~~ 我觉得这个是我平时用得最多的作用。即:

在模块内声明static函数,则此函数只能在本模块调用。而外部调用则会报错。

在本模块内声明全局变量,只限本模块内的调用,而外部调用则会出错。

我预计这个问题过后,楼主就会发问“const”的用法了

高工
2012-11-04 23:03:50     打赏
8楼

各位说得很在理,学习了~!


工程师
2012-11-05 16:35:27     打赏
9楼
嘿嘿,这个以前没怎么用到,是因为不知道,现在偶尔用到了,觉得挺好用~~

高工
2012-11-09 15:09:59     打赏
10楼

一个一个的积累~


共11条 1/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]