自然不會,每一個變量(包括函數(shù))都有自己的生命周期,程序結(jié)束后釋放所有的內(nèi)存,程序運(yùn)行時只有被聲明為inline內(nèi)聯(lián)函數(shù),或者正在被調(diào)用的函數(shù)(也就是你上面收提及的第一種情況)存儲在內(nèi)存中(棧區(qū)),調(diào)用完畢后立即釋放內(nèi)存。
創(chuàng)新互聯(lián)建站 - 聯(lián)通服務(wù)器托管,四川服務(wù)器租用,成都服務(wù)器租用,四川網(wǎng)通托管,綿陽服務(wù)器托管,德陽服務(wù)器托管,遂寧服務(wù)器托管,綿陽服務(wù)器托管,四川云主機(jī),成都云主機(jī),西南云主機(jī),聯(lián)通服務(wù)器托管,西南服務(wù)器托管,四川/成都大帶寬,成都機(jī)柜租用,四川老牌IDC服務(wù)商
回答完畢,祝樓主學(xué)習(xí)進(jìn)步。
C語言中調(diào)用函數(shù)的方法及步驟:
工具/原料:C語言
1、首先需要輸入想要調(diào)用的函數(shù)。
2、然后當(dāng)輸入一個括號后,即可觀察他的參數(shù)。
3、接著在對應(yīng)的參數(shù)中輸入?yún)?shù)值。
4、然后,系統(tǒng)會發(fā)生一個警告。
5、接著需要調(diào)用它相應(yīng)的頭文件。
6、最后再次編譯,發(fā)現(xiàn)沒有任何警告和錯誤即可。
從編碼到生成可執(zhí)行的binary文件是有好幾個過程的:(默認(rèn)已完成編碼)
1, 預(yù)編譯(預(yù)處理), 也就是替換工作, 先把代碼中的宏做替換, 條件編譯等會做處理,為編譯做作準(zhǔn)備;
2,編譯,包括了語法的檢查,匯編代碼等中間代碼的生成,代碼優(yōu)化,obj文件(也算是目標(biāo)代碼)的生成,已經(jīng)是有機(jī)器碼了;
3.庫的合成,這個不一定有,不是必須的;
4.鏈接, 連接器會按照一定的規(guī)則,比如根據(jù)連接腳步,把code組織起來,生成elf文件(elf可能不是一個所有通用的格式),這個時候已經(jīng)可以執(zhí)行了,里面的可以執(zhí)行的機(jī)器碼;
5,裁剪, 可以把elf文件中的非必需的段 strip,生成一個更精簡的elf文件;
6,binary的生成,objcopy命令可以把elf文件轉(zhuǎn)換成binary文件,binary文件燒錄到存儲器中可以直擊運(yùn)行。