先决条件:C中的静态变量
在C语言中, 默认情况下函数是全局的。 “static函数名称前的””关键字使其变为静态。例如, 下面的功能fun()是静态的。
static int fun( void )
{
printf ( "I am a static function " );
}
与C中的全局函数不同, 对静态函数的访问仅限于声明它们的文件。因此, 当我们想限制对函数的访问时, 我们将它们设为静态。使函数成为静态的另一个原因可能是在其他文件中重用了相同的函数名。
例如, 如果我们将以下程序存储在一个文件中文件1.c
/* Inside file1.c */
static void fun1( void )
{
puts ( "fun1 called" );
}
并将以下程序存储在另一个文件中文件2.c
/* Inside file2.c */
int main( void )
{
fun1();
getchar ();
return 0;
}
现在, 如果我们使用命令”gcc file2.c file1.c”, 我们得到了错误”未定义对” fun1″的引用”。这是因为fun1()被宣布staticin文件1.c不能在文件2.c.
如果你发现上述文章中有任何错误, 或者想分享有关C中静态函数的更多信息, 请写评论。
评论前必须登录!
注册