论坛» 嵌入式开发» MCU

关键字static的作用是什么?

菜鸟
2011-10-23 22:34 1楼
关键字static的作用是什么?
助工
2011-10-23 22:45 2楼
1). 在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变。
2). 在模块内(但在函数体外),一个被声明为静态的变量可以被模块内所用函数访问,但不能被模块外其它函数访问。它是一个本地的全局变量。
3). 在模块内,一个被声明为静态的函数只可被这一模块内的其它函数调用。那就是,这个函数被限制在声明它的模块的本地范围内使用。
助工
2011-10-24 19:57 3楼
C中的static函数 分类   static 函数内部函数和外部函数   当一个源程序由多个源文件组成时,C语言根据函数能否被其它源文件中的函数调用,将函数分为内部函数和外部函数。 内部函数   (又称静态函数)   如果在一个源文件中定义的函数,只能被本文件中的函数调用,而不能被同一程序其它文件中的函数调用,这种函数称为内部函数。   定义一个内部函数,只需在函数类型前再加一个“static”关键字即可,如下所示:   static 函数类型 函数名(函数参数表)   {……}   关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。   使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。 外部函数   外部函数的定义:在定义函数时,如果没有加关键字“static”,或冠以关键字“extern”,表示此函数是外部函数:   [extern] 函数类型 函数名(函数参数表)   {……}   调用外部函数时,需要对其进行说明:   [extern] 函数类型 函数名(参数类型表)[,函数名2(参数类型表2)……];   [案例]外部函数应用。   (1)文件mainf.c   main()   { extern void input(…),process(…),output(…);   input(…); process(…); output(…);   }   (2)文件subf1.c   ……   extern void input(……) /*定义外部函数*/   {……}   (3)文件subf2.c   ……   extern void process(……) /*定义外部 函数*/   {……}   (4)文件subf3.c   ……   extern void output(……) /*定义外部函数*/   {……}
共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]