static函数什么作用

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 21:02:56

static函数什么作用
static函数什么作用

static函数什么作用
static 声明的变量在C语言中有两方面的特征:
1)、变量会被放在程序的全局存储区中,这样可以在下一次调用的时候还可以保持原来的赋值.这一点是它与堆栈变量和堆变量的区别.
2)、变量用static告知编译器,自己仅仅在变量的作用范围内可见.这一点是它与全局变量的区别.
2、问题:Static的理解
关于static变量,请选择下面所有说法正确的内容:
A、若全局变量仅在单个C文件中访问,则可以将这个变量修改为静态全局变量,以降低模块间的耦合度;
B、若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度;
C、设计和使用访问动态全局变量、静态全局变量、静态局部变量的函数时,需要考虑重入问题;
D、静态全局变量过大,可那会导致堆栈溢出.
答案与分析:
对于A,B:根据本篇概述部分的说明b),我们知道,A,B都是正确的.
对于C:根据本篇概述部分的说明a),我们知道,C是正确的(所谓的函数重入问题,下面会详细阐述).
对于D:静态变量放在程序的全局数据区,而不是在堆栈中分配,所以不可能导致堆栈溢出,D是错误的.
因此,答案是A、B、C.
3、问题:不可重入函数
unsigned int sum_int( unsigned int base ){unsigned int index;
static unsigned int sum = 0; // 注意,是static类型的.
for (index = 1; index