static的使用
static關鍵字,表示了“靜態”,一般來說,他會被經常用于變量和函數。一個static的變量,其實就是全局變量,只不過他是有作用域的全局變量。比如一個函數中的static變量:
char* getConsumerName()
{
static int cnt = 0;
....
cnt++;
....
}
cnt變量的值會跟隨著函數的調用次而遞增,函數退出后,cnt的值還存在,只是cnt只能在函數中才能被訪問。而cnt的內存也只會在函數第一次被調用時才會被分配和初始化,以后每次進入函數,都不為static分配了,而直接使用上一次的值。對于一些被經常調用的函數內的常量,最好也聲明成static。但static的最多的用處卻不在這里,其最大的作用的控制訪問,在C中如果一個函數或是一個全局變量被聲明為static,那么,這個函數和這個全局變量,將只能在這個C文件中被訪問,如果別的C文件中調用這個C文件中的函數,或是使用其中的全局(用extern關鍵字),將會發生鏈接時錯誤。這個特性可以用于數據和程序保密。