[英]How qsort() function works?
void qsort (
void* base,
size_t num,
size_t size,
int (*compar)(const void*,const void*)
);
qsort 函數如何在地址后訪問“大小”字節以獲取下一個元素?
通過將void*
類型轉換為char*
?
qsort 函數如何訪問基地址后的“size”字節以獲取下一個元素? 通過將
void*
類型轉換為char*
?
問題中固有的假設是qsort
本身是用 C 編寫的; 不必如此。 讓我們假設它是。
轉換為char*
將是一種典型的方法,是的,通過顯式使用強制轉換運算符,或通過將base
分配給char*
類型的局部變量。
GNU C 允許您直接將整數添加到 void 指針,但這是 C 語言的不可移植擴展。
如果您對特定實現有疑問,請說明是什么實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.