溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何寫好C代碼之ssc網站架設

發布時間:2020-06-22 18:40:49 來源:網絡 閱讀:272 作者:douyongzai 欄目:編程語言

對應于面向對象語言的構造函數注入,ssc網站架設【企鵝21717-93408】C語言作為過程語言,參數注入法是最簡單、也是最直接的方法。最常見的排序方法qsort就是用這種方法:

void qsort(void base, size_t num, size_t size, int (compar)(const void,const void));
可以看到qsort函數的第四個參數compar就是外部依賴的對象(函數),因為不同場景有不同的比較元素大小的方式,通過參數將外部依賴注入,使該函數更加具有通用型,因為實際上我們用qsort,只是用他的排序算法,其他的都是和具體使用場景有關。

設置(set)接口注入
上一篇我們介紹的設置回調函數的方法其實就是使用這種方法,其本質就是專門對外提供一個接口,用來將依賴的外部對象或者函數注入到本模塊中來。比如開發一個模塊,需要申請內存,但是為了易用性,除了使用系統自帶的內存申請函數,我們需要支持第三方的內存池模塊來申請內存,我們就可以提供一個API來設置申請和釋放內存的函數,如下示例:

///默認申請內存方式為系統自帶的函數
static void (malloc_function)(size_t size) = malloc;
static void (free_function)(void p) = free;

int sample_module_init()
{
return 0;
}

///設置新的分配內存的函數
int sample_module_set_memory_api(void (get)(size_t size), void(put)(void p))
{
malloc_function = get;
free_function = put;

return 0;

}

///申請一個size大小的int類型數組
int sample_module_create_int_array(size_t size)
{
int p = (int )malloc_function(sizeof(int) * size);
return p;
}

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女