【C語言經(jīng)典面試題】static關(guān)鍵字的作用有哪些?
經(jīng)典面試題,有必要了解下!
1 問題描述
**如題所述,在C語言中,C語言的 **static 關(guān)鍵字的作用有哪些呢?
2 答案解析
作為一個(gè)從業(yè)多年的C程序員,我來給一個(gè)自己的參考答案;
- **修飾 **某個(gè)函數(shù)
當(dāng)static修飾某個(gè)函數(shù)時(shí),表示這個(gè)函數(shù)是一個(gè)內(nèi)部函數(shù),它只能被當(dāng)前.C文件的其他函數(shù)調(diào)用,而本C文件外的其他函數(shù)則不可調(diào)用這個(gè)函數(shù)。
- **修飾 **全局變量
當(dāng)static修飾全局變量時(shí),表示這個(gè)全局變量?jī)H在當(dāng)前C文件中生效,其他的C文件中,并不可訪問該全局變量。
- **修飾 **局部變量
**當(dāng)static修飾局部變量時(shí),表示這個(gè)局部變量位于全局區(qū),但是它僅能夠被該函數(shù)內(nèi)部訪問,函數(shù)外部則不能訪問;當(dāng)函數(shù)內(nèi)部訪問時(shí),該局部變量具有 ** 記憶性 。
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 更多分享
[架構(gòu)師李肯]
架構(gòu)師李肯 ( 全網(wǎng)同名 ),一個(gè)專注于嵌入式IoT領(lǐng)域的架構(gòu)師。有著近10年的嵌入式一線開發(fā)經(jīng)驗(yàn),深耕IoT領(lǐng)域多年,熟知IoT領(lǐng)域的業(yè)務(wù)發(fā)展,深度掌握IoT領(lǐng)域的相關(guān)技術(shù)棧,包括但不限于主流RTOS內(nèi)核的實(shí)現(xiàn)及其移植、硬件驅(qū)動(dòng)移植開發(fā)、網(wǎng)絡(luò)通訊協(xié)議開發(fā)、編譯構(gòu)建原理及其實(shí)現(xiàn)、底層匯編及編譯原理、編譯優(yōu)化及代碼重構(gòu)、主流IoT云平臺(tái)的對(duì)接、嵌入式IoT系統(tǒng)的架構(gòu)設(shè)計(jì)等等。擁有多項(xiàng)IoT領(lǐng)域的發(fā)明專利,熱衷于技術(shù)分享,有多年撰寫技術(shù)博客的經(jīng)驗(yàn)積累,堅(jiān)信【知識(shí)改變命運(yùn),技術(shù)改變世界】!
-
C語言
+關(guān)注
關(guān)注
180文章
7598瀏覽量
136188 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4306瀏覽量
62430 -
程序員
+關(guān)注
關(guān)注
4文章
950瀏覽量
29761 -
static
+關(guān)注
關(guān)注
0文章
33瀏覽量
10356 -
全局變量
+關(guān)注
關(guān)注
1文章
28瀏覽量
8961
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論