C中的静态函数和变量

我知道在面向对象语言中使用静态变量的目的是什么,但是,我不明白在C中使用“static”关键字的含义是什么。有人能解释一下吗?

在函数或全局变量上, static使函数或全局变量成为该文件的本地变量; 其他文件无法通过该名称访问该函数或全局变量(但如果您指定它,它们可以访问它)。

在一个局部变量上,它使它看起来像是一个全局变量,但只能在该函数中访问(除非再次给出一个指向它的指针)。

离开函数时静态变量的值与下次调用函数时变量的值相同。

只能在函数出现的同一文件中调用静态函数。