qsort.html

来自「posix标准英文,html格式」· HTML 代码 · 共 150 行

HTML
150
字号
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta name="generator" content="HTML Tidy, see www.w3.org"><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><link type="text/css" rel="stylesheet" href="style.css"><!-- Generated by The Open Group's rhtm tool v1.2.1 --><!-- Copyright (c) 2001-2004 IEEE and The Open Group, All Rights Reserved --><title>qsort</title></head><body bgcolor="white"><script type="text/javascript" language="JavaScript" src="../jscript/codes.js"></script><basefont size="3"> <a name="qsort"></a> <a name="tag_03_590"></a><!-- qsort --> <!--header start--><center><font size="2">The Open Group Base Specifications Issue 6<br>IEEE Std 1003.1, 2004 Edition<br>Copyright &copy; 2001-2004 The IEEE and The Open Group, All Rights reserved.</font></center><!--header end--><hr size="2" noshade><h4><a name="tag_03_590_01"></a>NAME</h4><blockquote>qsort - sort a table of data</blockquote><h4><a name="tag_03_590_02"></a>SYNOPSIS</h4><blockquote class="synopsis"><p><code><tt>#include &lt;<a href="../basedefs/stdlib.h.html">stdlib.h</a>&gt;<br><br> void qsort(void *</tt><i>base</i><tt>, size_t</tt> <i>nel</i><tt>, size_t</tt> <i>width</i><tt>,<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int (*</tt><i>compar</i><tt>)(const void *, const void *));<br></tt></code></p></blockquote><h4><a name="tag_03_590_03"></a>DESCRIPTION</h4><blockquote><div class="box"><sup>[<a href="javascript:open_code('CX')">CX</a>]</sup> <img src="../images/opt-start.gif" alt="[Option Start]"border="0"> The functionality described on this reference page is aligned with the ISO&nbsp;C standard. Any conflict between therequirements described here and the ISO&nbsp;C standard is unintentional. This volume of IEEE&nbsp;Std&nbsp;1003.1-2001 defers tothe ISO&nbsp;C standard. <img src="../images/opt-end.gif" alt="[Option End]" border="0"></div><p>The <i>qsort</i>() function shall sort an array of <i>nel</i> objects, the initial element of which is pointed to by<i>base</i>. The size of each object, in bytes, is specified by the <i>width</i> argument. If the <i>nel</i> argument has the valuezero, the comparison function pointed to by <i>compar</i> shall not be called and no rearrangement shall take place.</p><p>The application shall ensure that the comparison function pointed to by <i>compar</i> does not alter the contents of the array.The implementation may reorder elements of the array between calls to the comparison function, but shall not alter the contents ofany individual element.</p><p>When the same objects (consisting of width bytes, irrespective of their current positions in the array) are passed more thanonce to the comparison function, the results shall be consistent with one another. That is, they shall define a total ordering onthe array.</p><p>The contents of the array shall be sorted in ascending order according to a comparison function. The <i>compar</i> argument is apointer to the comparison function, which is called with two arguments that point to the elements being compared. The applicationshall ensure that the function returns an integer less than, equal to, or greater than 0, if the first argument is consideredrespectively less than, equal to, or greater than the second. If two members compare as equal, their order in the sorted array isunspecified.</p></blockquote><h4><a name="tag_03_590_04"></a>RETURN VALUE</h4><blockquote><p>The <i>qsort</i>() function shall not return a value.</p></blockquote><h4><a name="tag_03_590_05"></a>ERRORS</h4><blockquote><p>No errors are defined.</p></blockquote><hr><div class="box"><em>The following sections are informative.</em></div><h4><a name="tag_03_590_06"></a>EXAMPLES</h4><blockquote><p>None.</p></blockquote><h4><a name="tag_03_590_07"></a>APPLICATION USAGE</h4><blockquote><p>The comparison function need not compare every byte, so arbitrary data may be contained in the elements in addition to thevalues being compared.</p></blockquote><h4><a name="tag_03_590_08"></a>RATIONALE</h4><blockquote><p>The requirement that each argument (hereafter referred to as <i>p)</i> to the comparison function is a pointer to elements ofthe array implies that for every call, for each argument separately, all of the following expressions are nonzero:</p><pre><tt>((char *)p - (char *)base) % width == 0(char *)p &gt;= (char *)base(char *)p &lt; (char *)base + nel * width</tt></pre></blockquote><h4><a name="tag_03_590_09"></a>FUTURE DIRECTIONS</h4><blockquote><p>None.</p></blockquote><h4><a name="tag_03_590_10"></a>SEE ALSO</h4><blockquote><p>The Base Definitions volume of IEEE&nbsp;Std&nbsp;1003.1-2001, <a href="../basedefs/stdlib.h.html"><i>&lt;stdlib.h&gt;</i></a></p></blockquote><h4><a name="tag_03_590_11"></a>CHANGE HISTORY</h4><blockquote><p>First released in Issue 1. Derived from Issue 1 of the SVID.</p></blockquote><h4><a name="tag_03_590_12"></a>Issue 6</h4><blockquote><p>The DESCRIPTION is updated to avoid use of the term &quot;must&quot; for application requirements.</p><p>IEEE&nbsp;Std 1003.1-2001/Cor&nbsp;1-2002, item XSH/TC1/D6/49 is applied, adding the last sentence to the first non-shadedparagraph in the DESCRIPTION, and the following two paragraphs. The RATIONALE is also updated. These changes are for alignment withthe ISO&nbsp;C standard.</p></blockquote><div class="box"><em>End of informative text.</em></div><hr size="2" noshade><center><font size="2"><!--footer start-->UNIX &reg; is a registered Trademark of The Open Group.<br>POSIX &reg; is a registered Trademark of The IEEE.<br>[ <a href="../mindex.html">Main Index</a> | <a href="../basedefs/contents.html">XBD</a> | <a href="../utilities/contents.html">XCU</a> | <a href="../functions/contents.html">XSH</a> | <a href="../xrat/contents.html">XRAT</a>]</font></center><!--footer end--><hr size="2" noshade></body></html>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?