static小结

来源:互联网 发布:有什么二次元软件 编辑:程序博客网 时间:2024/06/03 15:04

   静态变量属于静态存储方式,但反之不一定成立。

   静态局部变量特点:

1,静态局部变量在函数内定义,但不像自动变量那样调用时就存在,退出函数就消失。

2,静态局部变量只能在定义该变量的的函数内使用。

3,允许对构造类静态局部量赋初值,若没有赋初值,系统自动赋值0.

4,对基本类型的静态局部变量若在说明时没赋以初值,则系统自动赋以0值。

静态全局变量:

    全局变量(外部变量)与静态全局变量都是静态存储方式,其区别是非静态全局变量的作用域为整个源程序,当一个源程序有多个源文件时,其在各个源文件都是有效的。而静态全局变量则限制了其作用域。

#include <stdio.h>
int fac(int n)
{
    static int f=1;
    f=f*n;
    return(f);
}
int main ()
{
    int i;
    for(i=1;i<=5;i++)
    printf("%d!=%d\n",fac(i));
    return(0);
}

当一个源程序由多个源文件组成时,C语言根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。

折叠内部函数

(又称静态函数)

如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,这种函数称为内部函数。

定义一个内部函数,只需在函数类型前再加一个“static”关键字即可,如下所示:

static 函数类型 函数名(函数参数表)

关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。

使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。


0 0
原创粉丝点击