static修饰的函数是可以被其他文件使用的
static修饰的函数不能被其他文件直接使用,这是和普通函数的区别,但是可以用过其他方式调用:
1.在文件中定义一个对外提供的函数,该函数在内部调用static修饰的函数,这就实现了间接调用static修饰的函数。
2.将static修饰的函数的函数指针传递出去,其他文件可以通过函数指针进行调用。
通过传递出函数指针这种调用方法是比较常用的,而且个人觉得是C语言的精妙之处。C语言和内存是紧密相关的,static主要是在编译链接阶段起作用,指导链接器将不同的函数按照链接脚本链接成可执行文件。一旦程序加载到内存中进行运行,那就没有什么static修饰的函数这种概念了,每个函数都一样,你能拿到函数指针就可以运行函数,这也是通过传递函数指针来调用static修饰的函数的原理。
原文链接:https://blog.csdn.net/weixin_42031299/article/details/115942270