龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

c语言中static使用方法

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
一、c程序存储空间布局 C程序一直由下列部分组成: 1)正文段――CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令; 2)初始化数据段(

  一、c程序存储空间布局

  C程序一直由下列部分组成:

  1)正文段――CPU执行的机器指令部分;一个程序只有一个副本;只读,防止程序由于意外事故而修改自身指令;

  2)初始化数据段(数据段)――在程序中所有赋了初值的全局变量,存放在这里。

  3)非初始化数据段(bss段)――在程序中没有初始化的全局变量;内核将此段初始化为0。

  4)栈――增长方向:自顶向下增长;自动变量以及每次函数调用时所需要保存的信息(返回地址;环境信息)。

  5)堆――动态存储分。

|-----------|

| |

|-----------|

| 栈 |

|-----------|

| | |

| |/ |

| |

| |

| /| |

| | |

|-----------|

| 堆 |

|-----------|

| 未初始化 |

|-----------|

| 初始化 |

|-----------|

| 正文段 |

|-----------|

  二、 面向过程程序设计中的static

  1. 全局静态变量

  在全局变量之前加上关键字static,全局变量就被定义成为一个全局静态变量。

  1)内存中的位置:静态存储区(静态存储区在整个程序运行期间都存在)

  2)初始化:未经初始化的全局静态变量会被程序自动初始化为0(自动对象的值是任意的,除非他被显示初始化)

  3)作用域:全局静态变量在声明他的文件之外是不可见的。准确地讲从定义之处开始到文件结尾。

  定义全局静态变量的好处:

  <1>不会被其他文件所访问,修改

  <2>其他文件中可以使用相同名字的变量,不会发生冲突。

精彩图集

赞助商链接