一爽撒、c語言為什么會(huì)有函數(shù)
- 匯編程序中也有函數(shù)這個(gè)概念蕊唐。
- 整個(gè)程序分成多個(gè)文件腊徙,一個(gè)文件分成多個(gè)函數(shù)简十,一個(gè)函數(shù)分成多個(gè)語句。
- 這種組織的好處在于分化問題便于編寫程序便于分工撬腾。
- 函數(shù)的出現(xiàn)是人的需要而不是機(jī)器(編譯器螟蝙,cpu)的需要。
- 函數(shù)的目的就是為了實(shí)現(xiàn)模塊化編程民傻。說白了就是為了提供程序的可移植性胰默。
二、函數(shù)書寫的一般規(guī)則
- 需要遵守一定的格式漓踢。函數(shù)的返回類型牵署、函數(shù)名、參數(shù)列表等彭雾。
- 一個(gè)函數(shù)只做一件事碟刺。函數(shù)不能太長也不能太短,原則上一個(gè)函數(shù)只能做一件事薯酝。
- 傳參不宜過多半沽。在ARM體系下,傳參不宜超過4個(gè)吴菠,傳參太多考慮結(jié)構(gòu)體打包者填。
- 盡量少碰全局變量。函數(shù)最好用傳參返回值和外部交換數(shù)據(jù)做葵,不要用全局變量占哟。使用了全局變量就破壞了函數(shù)的模塊化、結(jié)構(gòu)化酿矢。
三榨乎、函數(shù)是動(dòng)詞、變量名是名詞(面向?qū)ο笾蟹謩e叫方法和成員變量)
- 函數(shù)將來會(huì)被編譯成代碼瘫筐,變量指的主要是全局變量蜜暑。變量經(jīng)過編譯后變成了數(shù)據(jù)(給變量分配空間實(shí)質(zhì)上是把變量變成了數(shù)據(jù))。一個(gè)程序的運(yùn)行需要代碼和數(shù)據(jù)兩個(gè)方面的結(jié)合策肝。
- 代碼和數(shù)據(jù)之間相互配合肛捍,代碼是為了加工數(shù)據(jù)隐绵,數(shù)據(jù)必須借助代碼來起作用。名詞性的數(shù)據(jù)必須經(jīng)過動(dòng)詞性的加工才能變成最終我們需要產(chǎn)出的數(shù)據(jù)拙毫。這個(gè)加工過程就是程序的執(zhí)行過程依许。
四、函數(shù)的實(shí)質(zhì):數(shù)據(jù)處理器
- 程序的主體是數(shù)據(jù):程序運(yùn)行的主要目的是生成目標(biāo)數(shù)據(jù)缀蹄。
- 為了得到目標(biāo)數(shù)據(jù):需要兩個(gè)因素一是原材料二十加工算法峭跳。
- 程序編寫和運(yùn)行是為了把原數(shù)據(jù)加工成目標(biāo)函數(shù),程序的實(shí)質(zhì)就是一個(gè)數(shù)據(jù)處理器袍患。
- 函數(shù)就是程序的一個(gè)縮影坦康,函數(shù)的參數(shù)列表其實(shí)就是未來路給函數(shù)輸入原材料數(shù)據(jù),函數(shù)的返回值和輸出型參數(shù)就是為了向外部輸出目標(biāo)數(shù)據(jù)诡延,函數(shù)的函數(shù)體的代碼就是加工算法滞欠。
- 函數(shù)在靜止時(shí)就好像一臺(tái)沒開動(dòng)的機(jī)器,只占用存儲(chǔ)空間肆良,并不占資源(cpu+內(nèi)存)筛璧。 函數(shù)的每一次運(yùn)行就好像機(jī)器的每一次開機(jī)運(yùn)行,運(yùn)行時(shí)需要耗費(fèi)資源惹恃,運(yùn)行時(shí)可以對數(shù)據(jù)加工生成目標(biāo)數(shù)據(jù)夭谤,函數(shù)運(yùn)行完畢就會(huì)釋放占用的資源。
- 整個(gè)程序的運(yùn)行就是很多個(gè)函數(shù)相繼運(yùn)行的過程巫糙。