根据《C程序设计语言(第二版)》中4.6 静态变量,总结如下:
static用在三个地方分别为:声明静态外部变量、声明静态函数、声明内部变量。
1、声明静态外部变量:只能在声明的文件中调用,在工程的其他文件中使用extern 也没办法调用。
(需要注意的是,这里的文件为.c或是.cpp文件。如果为头文件.h,声明的静态外部变量在引入此头文件的程序中都能调用)
2、声明静态函数:在哪里声明成了静态的函数,就只能在本文件中使用。并且一般是静态函数声明+定义一起。
(即使在.h文件中声明的静态函数,在引入此头文件的程序中也没办法使用。(与静态的外部变量不同,外部变量在头文件中相当于直接加入到程序中了。我这么 理 解的))
3、声明内部静态变量:只能在函数内部使用。
(与普通的内部变量不同的是,它不会因为函数调用完毕而消失,它是一种只能在某个特定函数中使用但一直占用内存空间的变量。)