[ 基本难度系数 ]:★★★☆☆
一、静态函数
- 背景知识:普通函数都是跨文件可见的,即在文件 a.c 中定义的函数可以在 b.c 中使用。
- 静态函数:只能在定义的文件内可见的函数,称为静态函数。
- 语法:
staitc void f(void) // 在函数头前面增加关键字 static ,使之成为静态函数
{
// 函数体
}
- 要点:
- 静态函数主要是为了缩小函数的可见范围,减少与其他文件中重名函数冲突的概率。
- 静态函数一般被定义在头文件中,然后被各个源文件包含。
示例代码:
main.c文件
#include <stdio.h>
#include "main.h" // 声明自己写的头文件(在预处理阶段,将main.h文件的内容,复制到了此处)
int main(int argc, char const *argv[])
{
// (1)、使用的在头文件的static修饰的函数(本质上属于本文件(使用了声明的文件)的函数)
main_func1();
// (2)、使用了其它文件的static修饰的函数,所以看不到
a_func1();
/*
报此错误:
main.c:(.text+0x2b): undefined reference to `a_func1'
*/
return 0;
}
main.h文件
#include <stdio.h>
static void main_func1(void)
{
printf("main_func1\n");
}