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