c 中内置了很多進階的函數,我們先使用排序函數看一下


輸出結果為
為了能使這個qsort排序函數适應很多種排序情況,需要傳入一個排序規則函數當做參數。
下邊介紹一種函數指針數組的使用情況
假如我們要寫一個群發郵件的程式,向不同的人發送不同類型的内容,很自然的想到,我們用struct 來實作


我們使用結構來存放需要的資料列印的結果如下
但是代碼中充斥着大量的函數調用,每次都需要根據type來判斷調用哪個函數,日後如果需要添加新的類型,就要改動很多地方的代碼,這并不是我們想看到的
其實接下來的思想跟上邊的枚舉差不多,我們可以把一類的東西放到一個數組中,根據需要在其中取值就可以了
經過函數指針數組的改造呢,我們就得出了下邊的代碼


上邊的單詞寫錯了 reponse 應該改成 response ,這裡就不做修改了
接下來 引入一個可以傳多個參數的函數的使用方法,類似printf函數
加入某酒吧中有很多種不同的酒,現在需要寫一個程式,當我們輸入酒的名稱的後可以擷取該酒的價格,很簡單,程式是這樣的


現在我們已經能夠擷取酒的價格了,但是現在如果我提出這樣一個要求,需要知道幾種單酒的總價的呢。是以我們就需要寫一個函數類似于這樣的
由于輸入的酒品的個數是不固定的,是以順理成章的引申出了可變參數這個概念
我們先看一下列印多個int 的函數


經過我們修改後的代碼是這樣的


列印結果是