1. 欢迎使用xlink123.com访问北京pk10网!
  1. 手机北京pk10|

C语言中static的用法程序员必须懂的

分类: 北京赛车用法|时间:|阅读量:

北京pk10网导读:修饰局部变量修饰函数和全局变量局部变量按照存储形式来分,分为auto,static,register 首先从内存四区的角度去看,auto即为普通的局部变量,存储在栈上,当函数结束时,随之释放。

  修饰局部变量修饰函数和全局变量局部变量按照存储形式来分,分为auto,static,register

  首先从内存四区的角度去看,auto即为普通的局部变量,存储在栈上,当函数结束时,随之释放。

  而在c++中,对register做了增强,党C++编译器发现程序中需要取register变量的地址时,register对变量的声明变得无效。

  static修饰局部变量时该变量是存放在静态存储区,生命周期是整个程序结束。

  static局部变量初次定义时就要初始化,且只能初始化一次。如果在定义的时候不初始化,C语言中static的用法程序员必须懂的知识编译器就会自动赋值为0;(如果重复调用同一个函数,在第二次调用时,就不会再执行static局部变量初始化那句话了)

  所谓”记忆性”是指在两次函数调用时,在第二次调用进入时,能保持第一次调用退出时的值.

  staticinta=0;//运行期时初始化一次,下次再调用时,不进行初始化工作

  1.“记忆性”,程序运行很重要的一点就是可重复性,而static变量的”记忆性”破坏了这种可重复性,造成不同时刻至运行的结果可能不同.

  2.“生存期”全局性和唯一性.普通的local变量的存储空间分配在stack上,因此每次调用函数时,分配的空间都可能不一样,而static具有全局唯一性的特点,每次调用时,都指向同一块内存,这就造成一个很重要的问题----不可重入性

  当函数或局部变量浅加上static时,不是为了限制其存储方式,而主要是为了限制该全局变量或者函数的作用域仅限于本文件,所以又称为内部函数。此件时,对于外部(全局)变量,不论是否有static限制,它的存储区域都是在静态存储区,生存期都是全局的.此时的static只是起作用域限制作用,限定作用域在本模块(文)内部.

  使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名。

[来源:未知][编辑:admin]

【北京pk10网】用最朴实的百姓语言,专业普及滋补养生知识,可推荐给您身边的亲人朋友和有缘者,让他们同享健康!有朋自远方来,不亦乐乎。喜欢养生的朋友加我微信号:chun385