被调用函数内部的局部变量声明为static类型
2011-11-08 12:45
183 查看
今天在工作中遇到了关于在被调用函数内部的局部变量声明为static类型的作用,做一下使用总结。
例如一个被调用函数如getBuffer()
char* getBuffer()
{
static char dd[100]="abcdefg";
char * buf=dd;
return buf;
}
如果有个函数会对getBuffer()的dd数组进行连接操作,加入第一次在“abcdefg”后面连接上“hlk”,
当第一调用getBuffer时,数组达dd发生了改变,变长了。等第二次调用getBuffer时,并对dd数组继续进行连接加长时,第二次再调用getBuffer时就可以在“abcdefghlk”的基础上连接。如果没有生命数组dd是static的,第二次调用时只能在“abcdefg”的基础上连接。
例如一个被调用函数如getBuffer()
char* getBuffer()
{
static char dd[100]="abcdefg";
char * buf=dd;
return buf;
}
如果有个函数会对getBuffer()的dd数组进行连接操作,加入第一次在“abcdefg”后面连接上“hlk”,
当第一调用getBuffer时,数组达dd发生了改变,变长了。等第二次调用getBuffer时,并对dd数组继续进行连接加长时,第二次再调用getBuffer时就可以在“abcdefghlk”的基础上连接。如果没有生命数组dd是static的,第二次调用时只能在“abcdefg”的基础上连接。
相关文章推荐
- JavaScript的变量及数据类型小结在 JavaScript 函数内部声明的变量
- 关于函数声明和调用时参数类型不一致的情况
- C语言学习4: 函数返回值与传入参数,关于函数值传递和类型隐性转换,变量不同的作用域,static变量,多文件编译例如两个C文件,显示函数调用语句跳转,递归,斐波那契数列,多文件编译相同变量的问题。
- static用在函数里面,声明一次变量后,如果再次调用这个函数将会在初始值延续,如$num这里将累加。
- 不同存储类型的变量的声明、内部函数、外部函数
- 函数的类型,函数的声明,函数的定义,函数的调用,函数嵌套,函数递归,形参实参
- 变量类型、存储方式、函数声明调用——记录
- 快学Scala-变量声明、常用类型、条件与块表达式、循环、方法函数的调用
- 函数调用中的类型转换 c提升规则
- 修改内部系统。JS JQUERY AJAX 传参 JSP 并调用自定义函数 (典型无刷新前端调用后端)
- 任务与函数的声明与调用
- 是否可以从一个static方法内部发出对非static方法的调用?
- 浅析C++中虚函数的调用及对象的内部布局
- C语言-内部函数与外部函数+调用实例
- C#中调用C++的dll的参数为指针类型的导出函数(包括二级指针的情况)
- iOS Foundation 框架概述文档:常量、数据类型、框架、函数、发布声明
- static 函数 不能为外部文件调用
- error C2533: “WSProtocol::{ctor}”: 构造函数不能有返回类型 error C2264: “WSProtocol::WSProtocol”: 函数定义或声明中有错误
- C#调用VC的DLL的接口函数参数类型转换一览表
- 浅析C++中虚函数的调用及对象的内部布局2 (来自:lizhe1985)