软件编程
位置:首页>> 软件编程>> C语言>> c语言中static修饰函数的方法及代码

c语言中static修饰函数的方法及代码

作者:小妮浅浅  发布时间:2023-08-26 15:46:21 

标签:c语言,static,修饰函数

1、静态函数只能在声明它的文件中可见,其他文件不能引用该函数。

2、不同的文件可以使用相同名字的静态函数,互不影响。

3、使用static声明的函数不能被另一个文件引用。

实例


/* file1.c */
#include <stdio.h>

static void fun(void)
{
   printf("hello from fun.\n");
}

int main(void)
{
   fun();
   fun1();

return 0;
}

/* file2.c */
#include <stdio.h>

static void fun1(void)
{
   printf("hello from static fun1.\n");
}
/*
输出:
error:file1.c:(.text+0x20):对‘fun1'未定义的引用
collect2: error: ld returned 1 exit status
*/

知识点扩充:

在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。

介绍它的第一条也是最重要的一条:隐藏。

当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。

下面是a.c的内容


char a = 'A'; // global variable
void msg()
{
    printf("Hello\n");
}

下面是main.c的内容


int main(void)
{   
    extern char a;    // extern variable must be declared before use
    printf("%c ", a);
    (void)msg();
    return 0;
}

程序的运行结果是:

A Hello

来源:https://www.py.cn/other/jiaocheng/34073.html

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com