static这个函数这个函数在C语言中是什么意思,有哪些运用?
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 11:41:31
static这个函数
这个函数在C语言中是什么意思,有哪些运用?
这个函数在C语言中是什么意思,有哪些运用?
static 是C中很常用的修饰符,它被用来控制变量的存储方式和可见性
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、问题:不可重入函数
曾经设计过如下一个函数,在代码检视的时候被提醒有bug,因为这个函数是不可重入的,为什么?
unsigned int sum_int( unsigned int base )
{
unsigned int index;
static unsigned int sum = 0; // 注意,是static类型的.
for (index = 1; index
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、问题:不可重入函数
曾经设计过如下一个函数,在代码检视的时候被提醒有bug,因为这个函数是不可重入的,为什么?
unsigned int sum_int( unsigned int base )
{
unsigned int index;
static unsigned int sum = 0; // 注意,是static类型的.
for (index = 1; index
C语言中 在一个函数中用 static修饰的变量,还能给它赋上新值吗?
C语言中这个函数表示什么?
在C语言中,在一个子函数中定义的static型变量可以应用在其他函数中么?
在C语言中static有什么含义
C语言 这个函数的每一步是什么意思?
我想问一下图中这个C语言函数调用划线部分是什么意思?
在一个函数中定义一个变量为static int,是什么意思?
关于C语言函数的问题. 这个二维数组,用在我定义的函数当中.
C语言有哪些取整函数?
C语言图形函数有哪些
关于C语言中sqrt函数的运用!
初等函数分代数函数 超越函数,那么“高等函数”有没有这个名词?高等函数中包括哪些函数?如果没有“高等函数”这个名词,干吗