Chinaunix首页 | 论坛 | 博客
  • 博客访问: 67450
  • 博文数量: 7
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 55
  • 用 户 组: 普通用户
  • 注册时间: 2013-09-11 22:47
文章分类
文章存档

2013年(7)

我的朋友

分类: C/C++

2013-10-19 23:01:47

1.static修饰全局变量

    在全局变量前加static,全局变量就被定义成为一个全局静态变量。
    特点如下:
   1)存储区:静态存储区没变(静态存储区在整个程序运行期间都存在);
   2)作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。非静态全局 变量的作用域是整个源程序(多个源文件可以共同使用); 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能使用它。

     好处:   
    1)不会被其他文件所访问,修改;
    2)其他文件中可以使用相同名字的变量,不会发生冲突。

2.static修饰局部变量

    在局部变量之前加上关键字static,局部变量就被定义成为一个局部静态变量。
    特点如下:
  1)存储区:有栈变为静态存储区rw data,生存期为整个源程序,只能在定义该变量的函数内使用。退出该函数后, 尽管该变量还继续存在,
        但不能使用它;
  
  2)作用域:作用域仍为局部作用域,当定义它的函数或者语句块结束的时候,作用域随之结束。

3. static修饰函数

     在函数的返回类型前加上关键字static,函数就被定义成为静态函数。
     函数的定义和声明默认情况下是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用
     好处:
    1)其他文件中可以定义相同名字的函数,不会发生冲突
    2) 静态函数不能被其他文件所用。



阅读(20325) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~