




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第頁共頁C語言初始化效率問題及關(guān)鍵字解釋C語言初始化效率問題及關(guān)鍵字解釋C語言是一門通用計(jì)算機(jī)編程語言,應(yīng)用廣泛。C語言的設(shè)計(jì)目的是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。本文主要介紹C語言初始化效率問題以及關(guān)鍵字解釋。一、初始化效率1、在靜態(tài)變量的初始化中,我們可以把可執(zhí)行程序文件想要初始化的值放在當(dāng)程序執(zhí)行時(shí)變量將會使用的位置。當(dāng)可執(zhí)行文件載入到內(nèi)存時(shí),這個已經(jīng)保存了正確初始值的位置將賦值給那個變量,完成這個任務(wù)并不需要額外的時(shí)間,也不需要額外的指令,變量將會得到正確的值、2、自動變量當(dāng)程序鏈接時(shí)還無法判斷自動變量的存儲位置。事實(shí)上,函數(shù)的部分變量在函數(shù)的每次調(diào)用中可能占據(jù)不同的位置?;谶@個理由,自動變量沒有缺省的初始值,而顯示的初始化將在代碼塊的其實(shí)出插入一條隱式的賦值語句。一句話總結(jié);部分變量的初始化與分開寫毫無區(qū)別即什么時(shí)候使用變量什么時(shí)候聲明,盡量重用,不要讓他隱式初始化,浪費(fèi)內(nèi)存static關(guān)鍵字的修飾。當(dāng)它用于函數(shù)定義時(shí),或用于代碼塊之外的變量聲明時(shí),static關(guān)鍵字用于修改標(biāo)識符的鏈接屬性,從external改為internal,但標(biāo)識符的存儲類型和作用域不受影響。用這種方式聲明的函數(shù)或變量只能在聲明他們的文件中訪問??偨Y(jié):一下以文件解釋inta;//a變量存儲在靜態(tài)內(nèi)存特點(diǎn):在程序運(yùn)行之前創(chuàng)立可以被其他的C文件訪問以及它的下方函數(shù)使用初始化值為0=================staticinta;特點(diǎn):在程序運(yùn)行之前存在靜態(tài)內(nèi)存存儲不能被其他文件訪問================代碼塊中的變量staticinta;靜態(tài)變量與inta;(部分變量)的區(qū)別是:一個存儲在靜態(tài)內(nèi)存也就是普通內(nèi)存另一個是部分變量,也就是運(yùn)行時(shí)堆棧函數(shù)上添加static的話:不能被其他的文件訪問該函數(shù)幾個關(guān)鍵字的處理static靜態(tài)內(nèi)存auto運(yùn)行時(shí)堆棧register硬件存放器external引用外部文件變量函數(shù)internal引用內(nèi)部文件變量函數(shù)=======================關(guān)于代碼塊變量被static修飾保證該函數(shù)屢次調(diào)用時(shí),我們?yōu)榱朔乐乖撟兞坎蛔冞M(jìn)展的處理比方我們進(jìn)展了屢次的調(diào)用二、關(guān)鍵字解釋變量的存儲類型(storageclass)是指存儲變量值的內(nèi)存類型。變量的存儲類型決定變量何時(shí)創(chuàng)立、何時(shí)銷毀以及它的值將保持多久。有三個地方可以用于存儲變量:普通內(nèi)存、運(yùn)行時(shí)堆棧、硬件存放器。在這三個地方存儲的變量具有不同的特性。變量的缺省存儲類型取決于它的聲明位置。但凡在任何代碼塊之外聲明的變量總是存儲于靜態(tài)內(nèi)存中,也就是不屬于堆棧的內(nèi)存,這類變量成為靜態(tài)變量。對于這類變量,你無法為他們制定其他存儲類型。靜態(tài)變量在程序運(yùn)行之前創(chuàng)立,在程序的整個執(zhí)行期間始終存在。它始終保持原先的值,除非給它賦一個不同的值或者程序完畢。在代碼塊內(nèi)部聲明的變量的缺省存儲類型是自動的(automatic),也就是說他存儲于堆棧中,成為自動變量。有一個關(guān)鍵字auto就是用修飾這種存儲類型的,但它極少使用,因?yàn)榇a塊中的變量在缺省情況下就是自動變量在程序執(zhí)行到聲明自動變量的代碼塊時(shí),自動變量才被創(chuàng)立,當(dāng)程序的執(zhí)行流分開該代碼時(shí),這些自動變量便自行銷毀。假如該代碼塊被數(shù)次執(zhí)行,例如一個函數(shù)被反復(fù)調(diào)用,這些自動變量每次都將重新創(chuàng)立。在代碼塊再次執(zhí)行時(shí),這些自動變量在堆棧中所占據(jù)的內(nèi)存位置有可能和原先的位置一樣,也可能不同。及時(shí)他們所占據(jù)的位置一樣,你也不能保證這塊呢村同時(shí)不會有其他的用處,因此,我們可以說自動變量在代碼塊執(zhí)行完畢后就消失。當(dāng)代碼塊再次執(zhí)行時(shí),他們的值一般并不是上次執(zhí)行時(shí)的值。對于在代碼塊內(nèi)部聲明的變量,假如給它加上關(guān)鍵字static,可以使他的存儲類型從自動變?yōu)殪o態(tài)。具有靜態(tài)存儲類型的變量在整個程序執(zhí)行過程中一直存在,而不僅僅在聲明它的代碼塊的執(zhí)行時(shí)存在。注意,修改變量的'存儲類型并不標(biāo)示修改該變量的作用域,它任然只能在該代碼塊內(nèi)部按名字訪問。函數(shù)的形式參數(shù)不能聲明。最后,關(guān)鍵字register可以用于自動變量的聲明,提示他們應(yīng)該存儲于機(jī)器的硬件存放器而不是內(nèi)存中,這類變量稱為存放器變量。通常,存放器變量比存儲于內(nèi)存的變量訪問起來效率更高。但是,編譯器并不一定要理財(cái)register關(guān)鍵字,假如有太多的變量被聲明為register,它只選取前幾個實(shí)際存儲于存放器中,其余的就按普通自動比那輛處理。假如一個編譯器自己具有一套存放器優(yōu)化方法,它可能忽略register關(guān)鍵字,使用:使用說明,為了加快程序的編譯速度,你希望把使用頻率最高的那些變量聲明為存放器變量,在有些計(jì)算機(jī)中,假如你把指針聲明為存放器變量,程序的效率將能得到進(jìn)步,有其是那些頻繁的執(zhí)行間接訪問操作的指針,你可以把函數(shù)的形式參數(shù)聲明為存放器變量,編譯器會在函數(shù)的起始位置生成指令,把這些值從堆棧復(fù)制到存放器中。但是,完全有可能,這個優(yōu)化措施所節(jié)省的時(shí)間和控件的開銷還抵不上復(fù)制這幾個值所用的開銷。存放器變量的創(chuàng)立和銷毀時(shí)間和自動變量一樣,但它需要一些額外的工作。在一個使用存放器變量的函數(shù)返回之前,這些存放器先前存儲的值必須恢復(fù),確保調(diào)用者的存放器變量未被破壞。許多機(jī)器使用運(yùn)行時(shí)堆棧來完成這個任務(wù)。當(dāng)函數(shù)開場執(zhí)行時(shí),它把需要使用的所有存放器的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 漢中市第二人民醫(yī)院招聘考試真題2024
- 2024年保定高陽縣選聘教師考試真題
- 指數(shù)與對數(shù)函數(shù)課件
- 尿毒癥透析患者健康教育
- 山西太原2024-2025學(xué)年高二語文上冊11月期中檢測
- 中學(xué)改建工程環(huán)境影響評估報(bào)告
- 外科護(hù)理工作總結(jié)匯報(bào)
- 護(hù)理知識課件軟件
- 護(hù)理扎針技巧課件
- 醫(yī)院護(hù)理5S管理模式
- 行政管理過程中道德與法律的關(guān)系試題及答案
- 2024-2025學(xué)年廣東省深圳市高一數(shù)學(xué)下學(xué)期7月期末考試(附答案)
- 2025-2030年中國核子及核輻射測量儀器行業(yè)競爭格局及發(fā)展趨勢分析報(bào)告
- 2025物業(yè)社區(qū)文化建設(shè)方案物業(yè)社區(qū)文化活動方案2
- 高端寫字樓安全管理
- 大學(xué)英語四六級詞匯表
- 2025年中考?xì)v史開卷考查范圍重大考點(diǎn)全突破(完整版)
- AI基礎(chǔ)知識入門
- 2025年甘肅蘭州新區(qū)城投地產(chǎn)置業(yè)有限公司招聘筆試參考題庫附帶答案詳解
- 職稱評審申報(bào)培訓(xùn)
- 中國硫氰酸紅霉素市場供需現(xiàn)狀及投資戰(zhàn)略研究報(bào)告
評論
0/150
提交評論