簡體   English   中英

qsort() 函數如何工作?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM