易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++ static和可重入概念

static
C++中的static
  C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。
  一、面向过程设计中的static
  1、静态全局变量
  在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下:
  //Example 1
  #include <iostream.h>
  void fn();
  static int n; //定义静态全局变量
  void main()
  { n=20;
  cout<<n<<endl;
  fn();
  }
  void fn()
  { n++;
  cout<<n<<endl;
  }
  静态全局变量有以下特点:
  该变量在全局数据区分配内存;
  未经初始化的静态全局变量会被程序自动初始化为0(自动变量的值是随机的,除非它被显式初始化);
  静态全局变量在声明它的整个文件都是可见的,而在文件之外是不可见的;
  静态变量都在全局数据区分配内存,包括后面将要提到的静态局部变量。对于一个完整的程序,在内存中的分布情况如下图:
  代码区
  全局数据区
  堆区
  栈区
  一般程序的由new产生的动态数据存放在堆区,函数内部的自动变量存放在栈区。自动变量一般会随着函数的退出而释放空间,静态数据(即使是函数内部的静 态局部变量)也存放在全局数据区。全局数据区的数据并不会因为函数的退出而释放空间。细心的读者可能会发现,Example 1中的代码中将
  static int n; //定义静态全局变量
  改为
  int n; //定义全局变量
  程序照样正常运行。
  的确,定义全局变量就可以实现变量在文件中的共享,但定义静态全局变量还有以下好处:
  静态全局变量不能被其它文件所用;
  其它文件中可以定义相同名字的变量,不会发生冲突;
  您可以将上述示例代码改为如下:
  //Example 2//File1
  #include <iostream.h>
  void fn();
  static int n; //定义静态全局变量
  void main()
  { n=20;
  cout<<n<<endl;
  fn();
  }
  //File2
  #include <iostream.h>
  extern int n;
  void fn()
  { n++;
  cout<<n<<endl;
  }
  编译并运行Example 2,您就会发现上述代码可以分别通过编译,但运行时出现错误。


相关文档:

我的c学习之路二 hello world


<!--
/* Font Definitions */
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;
mso-font-alt:SimSun;
mso-font-charset:134;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:3 135135232 16 0 262145 0;}
@font-face
{font-family:"\@宋体" ......

c与c++的区别(基础)

为了用vc写一个最简单的 socket 程序,花费了一个下午的时间,过程中出现的错误有:
'SOCKET' : illegal use of this type as an expression
syntax error : missing ';' before 'type'
syntax error : identifier 'InitWinsock'   -->       bool   InitWinsock( ......

自动化测试中Python与C/C++的混合使用


背景
项目的
自动化测试中已经使用了基于Python
脚本的框架,自动化过程中最关键的问题就是如何实现桩模块。运用
Python
强大的功能,实现任何桩模块都是可能的,但是是否必须完全使用
Python
实现模块逻辑,成本是一个决定性因素。在桩模块逻辑简单的情况下,使用
Python
模拟模块逻辑不但使自动化测试的结构清 ......

c/c++笔试题目(林锐)

本试题仅用于考查C++/C程序员的基本编程技能。内容限于C++/C常用语法,不涉及数据结构、算法以及深奥的语法。考试成绩能反映出考生的编程质量以及对C++/C的理解程度,但不能反映考生的智力和软件开发能力。
笔试时间90分钟。请考生认真答题,切勿轻视。
一、请填写BOOL , float, 指针变量 与“零值”比较的 i ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号