0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【C語言經(jīng)典面試題】static關(guān)鍵字的作用有哪些?

嵌入式物聯(lián)網(wǎng)開發(fā) ? 來源:嵌入式物聯(lián)網(wǎng)開發(fā) ? 作者:嵌入式物聯(lián)網(wǎng)開發(fā) ? 2022-10-02 12:00 ? 次閱讀

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ù)改變世界】!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 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
收藏 人收藏

    評論

    相關(guān)推薦

    面試題】人工智能工程師高頻面試題匯總:機器學習深化篇(題目+答案)

    ,或者深度學習的框架,還有怎么優(yōu)化模型,這些都是加分項,能有效提高面試通過率。本篇小編整理了一些高頻的機器學習深化方面的面試題,這些題目都是從實際面試中總結(jié)出來的,非
    的頭像 發(fā)表于 12-16 13:42 ?1936次閱讀
    【<b class='flag-5'>面試題</b>】人工智能工程師高頻<b class='flag-5'>面試題</b>匯總:機器學習深化篇(題目+答案)

    面試題】人工智能工程師高頻面試題匯總:Transformer篇(題目+答案)

    隨著人工智能技術(shù)的突飛猛進,AI工程師成為了眾多求職者夢寐以求的職業(yè)。想要拿下這份工作,面試的時候得展示出你不僅技術(shù)過硬,還得能解決問題。所以,提前準備一些面試常問的問題,比如機器學習的那些算法
    的頭像 發(fā)表于 12-13 15:06 ?502次閱讀
    【<b class='flag-5'>面試題</b>】人工智能工程師高頻<b class='flag-5'>面試題</b>匯總:Transformer篇(題目+答案)

    人工智能工程師高頻面試題匯總——機器學習篇

    ,或者深度學習的框架,還有怎么優(yōu)化模型,這些都是加分項,能有效提高面試通過率。本篇小編整理了一些高頻的機器學習方面的面試題,這些題目都是從實際面試中總結(jié)出來的,非常具
    的頭像 發(fā)表于 12-04 17:00 ?850次閱讀
    人工智能工程師高頻<b class='flag-5'>面試題</b>匯總——機器學習篇

    C語言關(guān)鍵字分別發(fā)生在哪個階段

    在編譯的第一個階段:預處理,對一些宏定義做替換。 第二個,const。 C語言中的 const 用于修飾只讀變量,表示變量本身不能修改。 這個關(guān)鍵字會在編譯的第二步起作用,也就是編譯。
    的頭像 發(fā)表于 11-24 10:31 ?182次閱讀

    C++新手容易犯的十個編程錯誤

    簡單的總結(jié)一下?C++ 新手容易犯的一些編程錯誤,給新人們提供一個參考。 1 有些關(guān)鍵字在 cpp 文件中多寫了 對于 C++ 類,一些關(guān)鍵字只要寫在 .h 中就好,cpp 中就不用再
    的頭像 發(fā)表于 11-15 12:42 ?355次閱讀

    C語言關(guān)鍵字--typedef

    C語言關(guān)鍵字使用方法學習指南!
    的頭像 發(fā)表于 10-07 12:44 ?264次閱讀

    使用邊緣AI和Sitara處理器進行關(guān)鍵字檢測

    電子發(fā)燒友網(wǎng)站提供《使用邊緣AI和Sitara處理器進行關(guān)鍵字檢測.pdf》資料免費下載
    發(fā)表于 09-02 11:30 ?0次下載
    使用邊緣AI和Sitara處理器進行<b class='flag-5'>關(guān)鍵字</b>檢測

    快速掌握C語言關(guān)鍵字

    C語言中的32個關(guān)鍵字你知道多少個呢?根據(jù)關(guān)鍵字作用分為四類:數(shù)據(jù)類型關(guān)鍵字、控制語句
    的頭像 發(fā)表于 07-06 08:04 ?351次閱讀
    快速掌握<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>關(guān)鍵字</b>

    inline關(guān)鍵字被優(yōu)化導致此類函數(shù)被布局在flash內(nèi),怎么處理?

    問題解決。 但是,希望樂鑫官方把idf內(nèi)源碼中的inline關(guān)鍵詞都替換為__attribute((always_inline)),因為inline關(guān)鍵字不可靠! 期待下次idf版本更新能解決此bug,自己修改idf源碼真的是權(quán)宜之計、臨時之策。
    發(fā)表于 06-21 12:03

    C語言中的typedef的應用

    C 語言提供了 typedef 關(guān)鍵字,您可以使用它來為類型取一個新的名字。下面的實例為單字節(jié)數(shù)字定義了一個術(shù)語 BYTE。
    發(fā)表于 03-06 11:34 ?386次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中的typedef的應用

    嵌入式C語言面試大挑戰(zhàn)

    C++中static關(guān)鍵字除了具有C中的作用還有在類中的使用在類中,static可以用來修飾靜
    發(fā)表于 03-05 14:18 ?355次閱讀
    嵌入式<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>面試</b>大挑戰(zhàn)

    簡單總結(jié)一下嵌入式C++中常見的錯誤形式

    對于 C++ 類,一些關(guān)鍵字只要寫在 .h 中就好,cpp 中就不用再加上了,比如 virtual、static關(guān)鍵字,如果在 cpp 中多寫,編譯器會報錯。
    的頭像 發(fā)表于 02-23 09:40 ?507次閱讀

    關(guān)鍵字搜索文件夾中某個TXT文件

    文件夾中隨時創(chuàng)造TXT文件,如何及時選出剛創(chuàng)造的文件?或關(guān)鍵字搜索出需要的TXT文件?
    發(fā)表于 02-06 15:22

    在NVM和本地\"內(nèi)存中定義數(shù)組(靜態(tài) /global /local)的\"關(guān)鍵字是什么?

    在 NVM 和本地\"內(nèi)存中定義數(shù)組(靜態(tài) /global /local)的\"關(guān)鍵字是什么? 還有與 32 位對齊的關(guān)鍵字怎么樣。
    發(fā)表于 01-25 07:52

    經(jīng)典Linux面試題總結(jié)

    絕對路徑用什么符號表示?當前目錄、上層目錄用什么表示?主目錄用什么表示? 切換目錄用什么命令?
    的頭像 發(fā)表于 01-04 11:01 ?375次閱讀