【C語言經(jīng)典面試題】static關鍵字的作用有哪些?
經(jīng)典面試題,有必要了解下!
1 問題描述
**如題所述,在C語言中,C語言的 **static 關鍵字的作用有哪些呢?
2 答案解析
作為一個從業(yè)多年的C程序員,我來給一個自己的參考答案;
- **修飾 **某個函數(shù)
當static修飾某個函數(shù)時,表示這個函數(shù)是一個內(nèi)部函數(shù),它只能被當前.C文件的其他函數(shù)調用,而本C文件外的其他函數(shù)則不可調用這個函數(shù)。
- **修飾 **全局變量
當static修飾全局變量時,表示這個全局變量僅在當前C文件中生效,其他的C文件中,并不可訪問該全局變量。
- **修飾 **局部變量
**當static修飾局部變量時,表示這個局部變量位于全局區(qū),但是它僅能夠被該函數(shù)內(nèi)部訪問,函數(shù)外部則不能訪問;當函數(shù)內(nèi)部訪問時,該局部變量具有 ** 記憶性 。
3 示例代碼
寫一段示例代碼:
?
?
#include
#include
?
static int test_func1(int a)
{
static int c = 5;
c = a;
return a + 1;
}
?
static int b;
?
int main(int argc, const char *argv[])
{
printf("test: %d\\n", test_func1(1));
return 0;
}
這段代碼,則分別演示了3種情況,可以參考一下。
4 更多分享
[架構師李肯]
架構師李肯 ( 全網(wǎng)同名 ),一個專注于嵌入式IoT領域的架構師。有著近10年的嵌入式一線開發(fā)經(jīng)驗,深耕IoT領域多年,熟知IoT領域的業(yè)務發(fā)展,深度掌握IoT領域的相關技術棧,包括但不限于主流RTOS內(nèi)核的實現(xiàn)及其移植、硬件驅動移植開發(fā)、網(wǎng)絡通訊協(xié)議開發(fā)、編譯構建原理及其實現(xiàn)、底層匯編及編譯原理、編譯優(yōu)化及代碼重構、主流IoT云平臺的對接、嵌入式IoT系統(tǒng)的架構設計等等。擁有多項IoT領域的發(fā)明專利,熱衷于技術分享,有多年撰寫技術博客的經(jīng)驗積累,堅信【知識改變命運,技術改變世界】!
-
C語言
+關注
關注
180文章
7614瀏覽量
137713 -
函數(shù)
+關注
關注
3文章
4346瀏覽量
62971 -
程序員
+關注
關注
4文章
953瀏覽量
29856 -
static
+關注
關注
0文章
33瀏覽量
10407 -
全局變量
+關注
關注
1文章
28瀏覽量
9003
發(fā)布評論請先 登錄
相關推薦
評論