根據《C程序設計語言(第二版)》中4.6 靜態變量,總結如下:
static用在三個地方分別爲:聲明靜態外部變量、聲明靜態函數、聲明內部變量。
1、聲明靜態外部變量:只能在聲明的文件中調用,在工程的其他文件中使用extern 也沒辦法調用。
(需要注意的是,這裏的文件爲.c或是.cpp文件。如果爲頭文件.h,聲明的靜態外部變量在引入此頭文件的程序中都能調用)
2、聲明靜態函數:在哪裏聲明成了靜態的函數,就只能在本文件中使用。並且一般是靜態函數聲明+定義一起。
(即使在.h文件中聲明的靜態函數,在引入此頭文件的程序中也沒辦法使用。(與靜態的外部變量不同,外部變量在頭文件中相當於直接加入到程序中了。我這麼 理 解的))
3、聲明內部靜態變量:只能在函數內部使用。
(與普通的內部變量不同的是,它不會因爲函數調用完畢而消失,它是一種只能在某個特定函數中使用但一直佔用內存空間的變量。)