觀衆老爺好!今天講函數是什麼?觀衆老爺請放松一下,拿出瓜子飲料,茶水,放松聽小編一一道來!
觀衆老爺對計算機應該有所了解,計算機最基本的組成是由CPU(中央處理器)、GPU(顯卡)、聲卡、網卡、内存、磁盤、南北橋、主闆、顯示器、鍵盤、鼠标等硬件組成。說到這裡觀衆老爺估計在抱怨小編,今天不是說函數嗎?函數與計算機組成有關系嗎?觀衆老爺待小編庖丁解牛詳細道來!
計算機作為我們生活生産的工具,我們要想更好的操縱它,那我們必須要了解它,知道它是如何構成的、如何運作的、有哪些功能等等。隻有這樣我們才能靈活運用,遇到問題才能知道結症在哪?
計算機編程更多的是操縱計算機硬件的功能,比如我們想讓一個字符在屏幕上顯示,那經過了哪些步驟呢?又經過了哪些硬件協作呢?
早期計算機并不存在WINDOWS和LIUNX等多任務多線程的系統程序(系統也是程序,不要存在系統不是程序的觀點,這是會讓人贻笑大方的,系統的程序更接近底層操作,我們編寫的應用程序基本很少直接跟硬件打交道了,導緻很多編程人員感覺在空中建樓閣,知其然不知其所以然,當然軟件編程與硬件分離的好處是不用了解硬件就能進行編程,大大減少了應用程序編程人員的負擔。當然如果觀衆老爺是愛好編程的人,請一定要多學習點硬件知識,當然小編後面也會來幾期硬件相關的知識)。
那時候編程都是直接對硬件的查詢與操作!随後出現的DOS系統更多是一些硬件操作程序的集合,而DOS系統的編程更多的是調用DOS本身的硬件中斷程序和BIOS的中斷功能!随着UNIX和WINDOW的出現,硬件的操作也随之兩極分化,隻有硬件系統編程人員才會編寫硬件驅動程序和系統程序,而應用程序編程人員就不必掌握硬件相關的知識了。但我們應用程序編程人員用到函數和庫大多是硬件系統編程人員所編寫的硬件操作程序函數庫!在編譯器編譯我們所編寫的編程文本文件時,鍊接程序會把系統函數地址覆蓋到我們調用函數的地方。當程序運行時,CPU讀到函數地址會直接跳轉到函數地址所指向的地方運行。到了這裡觀衆老爺應該明白函數其實就是一個工具箱,當我們調用函數時,CPU會跳到這個工具箱的内存地址當中運行!
工欲善其事必先利其器,在我們編程時,函數庫就是我們最好的工具箱,這個工具箱裡有着諸多功能函數,有系統函數,網絡函數,圖形接口函數,數學函數,音頻函數,當然還有應用程序編程人員在前幾種函數的基礎上再次封裝而成的功能函數,也可以是簡單的算法函數。
當然我們自己也可以編寫自己的功能函數,下面我們舉個例子(當然是僞代碼描述,暫時咱們不涉及具體編程語言,這樣我們不會陷入到任何編程語言的條條框框當中,也可以更好的理解編程到底如何進行的,編程語言隻是工具,我們不必要為了工具好壞去評判它,這個工具不好咱們可以換一個,當然觀衆老爺後期也可以開發自己的編程語言):
//首先我們将數據結構和函數分開,程序主體調用函數與初始化數據結構就可以,當然這裡的文件和函數都是虛構的并不能被編譯成程序
Mod.xxx //數據結構文件
//還是長方體比較方便
Struct CubeMode{
Int long = 0;
Int wide = 0;
Int high = 0;
}
Function.xxx //函數文件
@sys.xxx//導入系統函數文件
Void CubeVolume (int[] step[3]){
Volume = step[0] * step[1] * step[2];//體積計算公式
Print("這個立方體體積是/n",&Volume);//輸出體積值,調用的就是系統函數文件裡的函數
}
Soft.xxx//程序文件
@Mod.xxx//導入數據結構文件
@Function.xxx //導入函數文件
CubeMode CubeOne;//初始化一個長方體實例
CubeOne.long =10;
CubeOne.wide = 3;
CubeOne.high = 5;
Int[] test = {0 0 0};//初始化一個數組為0
test[0] =CubeOne.long;//将長方體的數據賦予數組
test[1] =CubeOne.wide;
test[2] =CubeOne.high;
CubeVolume(test);//調用體積函數
觀衆老爺是不是理解了函數是什麼呢?您的關注、點贊、收藏、轉發都是我成長的動力!觀衆老爺下期再會!
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!