通用鏈表與回調

通用鏈表(list)

void* 萬能指針,可以與任意類型的指針互換

				int* = void* 
				void* = int*  

需要把鏈表的數據域換成void*類型。

回調

由於通用鏈表存儲的類型不確定,因此類型的運算規則不確定,當需要使用到關係運算運算時,需要鏈表的使用者提供運算(提供一個函數供鏈表調用),這種模式叫回調。

void* 不能直接解引用,需要先轉換成其它有效類型。

例如:
標準庫的中qsort函數:

void qsort(void *base, size_t nmemb, size_t size,int(*compar)(const void*, const void*));

base:帶排序數組的首地址
nmemb:每個元素多少個字節
size:有多少個元素
int(*compar)(const void *, const void *):元素與元素間怎麼比較(自定義比較函數)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章