首页 > 编程知识 正文

函数内部的static(函数在一点连续的定义)

时间:2023-05-05 18:08:31 阅读:2135 作者:4250

静态是C语言中非常常见的修饰符,用来控制变量的存储和可见性。

静态声明的变量在C语言中有两个特点:

1)变量将被放置在程序的全局存储区,以便在下一次调用中保留原始赋值。这就是它与堆栈变量和堆变量的区别。

2)变量通过静态告诉编译器,它只在变量的范围内可见。这就是它和全局变量的区别。

2.问题:对静态的理解

关于静态变量,请选择以下所有正确的陈述:

A.如果只在单个C文件中访问全局变量,可以修改为静态全局变量,减少模块之间的耦合;

B.如果全局变量只被单个函数访问,可以改为函数的静态局部变量,降低模块之间的耦合度;

C.当设计和使用访问动态全局变量、静态全局变量和静态局部变量的函数时,应考虑再入;

D.静态全局变量太大,但这将导致堆栈溢出。

回答和分析:

对于A、B:根据本文总论部分对B)的描述,我们知道A和B都是正确的。

c:根据a)的描述在这个概述中,我们知道c是正确的(下面将详细解释所谓的函数再入问题)。

d:静态变量放在程序的全局数据区,而不是在栈中分配,所以不可能造成栈溢出。d错了。

所以,答案是A、B、c。

3.问题:无法重新输入功能。

我曾经设计过下面这个函数,在看代码的时候会想起bug,因为这个函数是不可重入的。为什么呢?

无符号整数sum_int(无符号整数基数)

{

无符号整数索引;

静态无符号int sum=0;//注意,它是静态类型的。

for(index=1;指数

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。