Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

103 lines
4.0KB

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
  4. <head>
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  6. <title>bsearch (The Red Hat newlib C Library)</title>
  7. <meta name="description" content="bsearch (The Red Hat newlib C Library)">
  8. <meta name="keywords" content="bsearch (The Red Hat newlib C Library)">
  9. <meta name="resource-type" content="document">
  10. <meta name="distribution" content="global">
  11. <meta name="Generator" content="makeinfo">
  12. <link href="index.html#Top" rel="start" title="Top">
  13. <link href="Document-Index.html#Document-Index" rel="index" title="Document Index">
  14. <link href="Document-Index.html#SEC_Contents" rel="contents" title="Table of Contents">
  15. <link href="Stdlib.html#Stdlib" rel="up" title="Stdlib">
  16. <link href="calloc.html#calloc" rel="next" title="calloc">
  17. <link href="atoll.html#atoll" rel="prev" title="atoll">
  18. <style type="text/css">
  19. <!--
  20. a.summary-letter {text-decoration: none}
  21. blockquote.indentedblock {margin-right: 0em}
  22. blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
  23. blockquote.smallquotation {font-size: smaller}
  24. div.display {margin-left: 3.2em}
  25. div.example {margin-left: 3.2em}
  26. div.lisp {margin-left: 3.2em}
  27. div.smalldisplay {margin-left: 3.2em}
  28. div.smallexample {margin-left: 3.2em}
  29. div.smalllisp {margin-left: 3.2em}
  30. kbd {font-style: oblique}
  31. pre.display {font-family: inherit}
  32. pre.format {font-family: inherit}
  33. pre.menu-comment {font-family: serif}
  34. pre.menu-preformatted {font-family: serif}
  35. pre.smalldisplay {font-family: inherit; font-size: smaller}
  36. pre.smallexample {font-size: smaller}
  37. pre.smallformat {font-family: inherit; font-size: smaller}
  38. pre.smalllisp {font-size: smaller}
  39. span.nolinebreak {white-space: nowrap}
  40. span.roman {font-family: initial; font-weight: normal}
  41. span.sansserif {font-family: sans-serif; font-weight: normal}
  42. ul.no-bullet {list-style: none}
  43. -->
  44. </style>
  45. </head>
  46. <body lang="en">
  47. <a name="bsearch"></a>
  48. <div class="header">
  49. <p>
  50. Next: <a href="calloc.html#calloc" accesskey="n" rel="next">calloc</a>, Previous: <a href="atoll.html#atoll" accesskey="p" rel="prev">atoll</a>, Up: <a href="Stdlib.html#Stdlib" accesskey="u" rel="up">Stdlib</a> &nbsp; [<a href="Document-Index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Document-Index.html#Document-Index" title="Index" rel="index">Index</a>]</p>
  51. </div>
  52. <hr>
  53. <a name="bsearch_002d_002d_002dbinary-search"></a>
  54. <h3 class="section">2.10 <code>bsearch</code>&mdash;binary search</h3>
  55. <a name="index-bsearch"></a>
  56. <p><strong>Synopsis</strong>
  57. </p><div class="example">
  58. <pre class="example">#include &lt;stdlib.h&gt;
  59. void *bsearch(const void *<var>key</var>, const void *<var>base</var>,
  60. size_t <var>nmemb</var>, size_t <var>size</var>,
  61. int (*<var>compar</var>)(const void *, const void *));
  62. </pre></div>
  63. <p><strong>Description</strong><br>
  64. <code>bsearch</code> searches an array beginning at <var>base</var> for any element
  65. that matches <var>key</var>, using binary search. <var>nmemb</var> is the element
  66. count of the array; <var>size</var> is the size of each element.
  67. </p>
  68. <p>The array must be sorted in ascending order with respect to the
  69. comparison function <var>compar</var> (which you supply as the last argument of
  70. <code>bsearch</code>).
  71. </p>
  72. <p>You must define the comparison function <code>(*<var>compar</var>)</code> to have two
  73. arguments; its result must be negative if the first argument is
  74. less than the second, zero if the two arguments match, and
  75. positive if the first argument is greater than the second (where
  76. &ldquo;less than&rdquo; and &ldquo;greater than&rdquo; refer to whatever arbitrary
  77. ordering is appropriate).
  78. </p>
  79. <br>
  80. <p><strong>Returns</strong><br>
  81. Returns a pointer to an element of <var>array</var> that matches <var>key</var>. If
  82. more than one matching element is available, the result may point to
  83. any of them.
  84. </p>
  85. <br>
  86. <p><strong>Portability</strong><br>
  87. <code>bsearch</code> is ANSI.
  88. </p>
  89. <p>No supporting OS subroutines are required.
  90. </p>
  91. <br>
  92. </body>
  93. </html>