⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qsort.html

📁 IEEE 1003.1-2003, Single Unix Specification v3
💻 HTML
字号:
<!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-2003 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, 2003 Edition<br>Copyright &copy; 2001-2003 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><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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -