<!DOCTYPE html>
<html class="client-nojs" lang="ru" dir="ltr"><head>
    <meta charset="UTF-8">
    <title>Limits.h</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="icon" type="image/png" href="./_res_/favicon.png">
    <link rel="canonical" href="https://ru.wikipedia.org/wiki/Limits.h"> <link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/skins.vector.styles.legacy.css" rel="stylesheet" type="text/css">
    <meta name="ResourceLoaderDynamicStyles" content="">
    <link href="./_mw_/ext.gadget.common-site.css" rel="stylesheet" type="text/css">
    <link href="./_mw_/ext.gadget.logo.css" rel="stylesheet" type="text/css">
    <link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
    <link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
    <link rel="stylesheet" type="text/css" href="./_res_/footer.css">
    <link rel="stylesheet" type="text/css" href="./_res_/vector.css">
  </head>

  <body class="skin-vector-legacy mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Limits_h rootpage-Limits_h skin-vector action-view">
    <div id="content" class="mw-body" role="main">
      <a id="top"></a>
      <h1 id="firstHeading" class="firstHeading mw-first-heading">limits.h</h1>
      <div id="bodyContent" class="vector-body">
        <div id="contentSub">
          <div id="mw-content-subtitle"></div>
        </div>
        <div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="ru" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="ru" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r138740689">
/* start https://ru.wikipedia.org/ */


.mw-parser-output .ts-Боковая_навигационная_таблица-body{float:right;clear:right;width:23em;margin:0 0 1.0em 1.0em;background:var(--background-color-interactive-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);color:inherit;padding:0.4em;border-spacing:0.2em;text-align:center;line-height:1.4em;font-size:90%}.mw-parser-output .ts-Боковая_навигационная_таблица-outerTitle{padding-bottom:0.2em;font-size:125%;line-height:1.15em;font-weight:bold}.mw-parser-output .ts-Боковая_навигационная_таблица-topImage{padding:0 0 0.4em}.mw-parser-output .ts-Боковая_навигационная_таблица-topImage-caption,.mw-parser-output .ts-Боковая_навигационная_таблица-image-caption{padding-top:0.2em;line-height:1.2em}.mw-parser-output .ts-Боковая_навигационная_таблица-preTitle{padding-top:0.4em}.mw-parser-output .ts-Боковая_навигационная_таблица-topImage-row+tr>.ts-Боковая_навигационная_таблица-preTitle{padding-top:0}.mw-parser-output .ts-Боковая_навигационная_таблица-image{padding:0.4em 0 0.4em}.mw-parser-output .ts-Боковая_навигационная_таблица-title{padding:0.2em 0.4em 0.2em;font-size:125%;line-height:1.15em;font-weight:bold;background:var(--ruwiki-background-color-blue200,#cfe3ff);color:inherit}.mw-parser-output .ts-Боковая_навигационная_таблица-above{padding:0.2em 0.4em 0.2em;font-weight:bold}.mw-parser-output .ts-Боковая_навигационная_таблица-below{padding:0.2em 0.4em 0.2em;font-weight:bold;background:var(--background-color-progressive-subtle,#eaf3ff);color:inherit}.mw-parser-output .ts-Боковая_навигационная_таблица-heading{padding:0.2em 0;font-weight:bold;background:var(--background-color-progressive-subtle,#eaf3ff);color:inherit}.mw-parser-output .ts-Боковая_навигационная_таблица-list{padding:0.2em 0}


/* end   https://ru.wikipedia.org/ */
</style>
<p><i>limits.h</i>&nbsp;— заголовочный файл <b>стандартной библиотеки общего назначения</b> <a href="%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_%D0%A1%D0%B8" class="mw-redirect" title="Язык программирования Си">языка программирования Си</a>, который включает определения характеристик общих типов переменных. Их значения зависят от целевой аппаратной платформы и используемого компилятора языка.
</p>

<div class="mw-heading mw-heading2"><h2 id="Константы-члены"><span id=".D0.9A.D0.BE.D0.BD.D1.81.D1.82.D0.B0.D0.BD.D1.82.D1.8B-.D1.87.D0.BB.D0.B5.D0.BD.D1.8B"></span>Константы-члены</h2></div>
<p>Колонка «минимальное значение диапазона» содержит минимумы из возможного диапазона для константы данного типа, как это указано в стандарте. Иногда значения <code>_MIN</code> представляют минимумы диапазона, представимые в виде редко используемого <a href="%D0%9E%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4" title="Обратный код">обратного кода</a> и знакового диапазона. Большинство реализаций будет иметь больший диапазон по крайней мере для некоторых из этих чисел, например:
</p>
<ul><li>Реализации <a href="%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%B4_(%D0%BF%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%B0)" class="mw-redirect" title="Дополнительный код (представление числа)">дополнительного кода</a> имеют <code>SCHAR_MIN</code> равным −128 (аналогично для всех остальных значений <code>_MIN</code>).</li>
<li>32-битные реализации устанавливают <code>INT_MAX</code> равным 2 147 483 647 (а также для <code>INT_MIN</code> и <code>UINT_MAX</code>)</li>
<li>Реализации с поддержкой <a href="%D0%AE%D0%BD%D0%B8%D0%BA%D0%BE%D0%B4" title="Юникод">Юникода</a> устанавливают <code>MB_LEN_MAX</code> 4 или более.</li>
<li>Многие <a href="%D0%A6%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BE%D0%B9_%D1%81%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80" title="Цифровой сигнальный процессор">ЦСП</a> имеют <code>CHAR_BIT</code> равным 16 или более<a rel="nofollow" class="external autonumber" href="https://web.archive.org/web/20081201053529/http://www.parashift.com/c++-faq-lite/intrinsic-types.html#faq-26.4">[1]</a><a rel="nofollow" class="external autonumber" href="https://web.archive.org/web/20100327225121/http://home.att.net/~jackklein/c/inttypes.html#char">[2]</a>.</li></ul>
<table class="wikitable">
<tbody><tr>
<th>Имя</th>
<th>Описание</th>
<th>Типичное значение 32-битной<br>выполняемой/компилируемой<br>программы (с 1995 и сейчас)</th>
<th>Типичное значение 64-битной<br>выполняемой/компилируемой<br>программы (с 2008(?))</th>
<th>Стандартный минимум<br>или максимум диапазона значений по ANSI
</th></tr>
<tr>
<td><code>CHAR_BIT</code></td>
<td>Число бит в <a href="%D0%91%D0%B0%D0%B9%D1%82" title="Байт">байте</a></td>
<td align="right">8</td>
<td align="right">8</td>
<td align="right">≥ 8
</td></tr>
<tr>
<td><code>SCHAR_MIN</code></td>
<td>Минимальное значение для знакового char</td>
<td align="right">−128</td>
<td align="right">−128</td>
<td align="right">≤ −127
</td></tr>
<tr>
<td><code>SCHAR_MAX</code></td>
<td>Максимальное значение для знакового char</td>
<td align="right">127</td>
<td align="right">127</td>
<td align="right">≥ 127
</td></tr>
<tr>
<td><code>UCHAR_MAX</code></td>
<td>Максимальное значение для беззнакового char</td>
<td align="right">255</td>
<td align="right">255</td>
<td align="right">≥ 255
</td></tr>
<tr>
<td><code>CHAR_MIN</code></td>
<td>Минимальное значение для char</td>
<td align="right">−128</td>
<td align="right">−128</td>
<td align="right">≤ −127<br>(если <code>char</code> представлено как<br><code>знаковый char</code>; иначе 0)
</td></tr>
<tr>
<td><code>CHAR_MAX</code></td>
<td>Максимальное значение для char</td>
<td align="right">127</td>
<td align="right">127</td>
<td align="right">≥ 127<br>(если <code>char</code> представлено как<br><code>знаковый char</code>; иначе 255)
</td></tr>
<tr>
<td><code>MB_LEN_MAX</code></td>
<td>Максимальная многобайтовая длина символа по всем локалям</td>
<td align="right">различается, обычно от 4</td>
<td align="right">различается, обычно от 4</td>
<td align="right">≥ 1
</td></tr>
<tr>
<td><code>SHRT_MIN</code></td>
<td>Минимальное значение для short int</td>
<td align="right">−32768</td>
<td align="right">−32768</td>
<td align="right">≤ −32767
</td></tr>
<tr>
<td><code>SHRT_MAX</code></td>
<td>Максимальное значение для short int</td>
<td align="right">32767</td>
<td align="right">32767</td>
<td align="right">≥ 32767
</td></tr>
<tr>
<td><code>USHRT_MAX</code></td>
<td>Максимальное значение для беззнакового short int</td>
<td align="right">65535</td>
<td align="right">65535</td>
<td align="right">≥ 65535
</td></tr>
<tr>
<td><code>INT_MIN</code></td>
<td>Минимальное значение для int</td>
<td align="right">−2147483648</td>
<td align="right">−2147483648</td>
<td align="right">≤ −32767
</td></tr>
<tr>
<td><code>INT_MAX</code></td>
<td>Максимальное значение для int</td>
<td align="right">2147483647</td>
<td align="right">2147483647</td>
<td align="right">≥ 32767
</td></tr>
<tr>
<td><code>UINT_MAX</code></td>
<td>Максимальное значение для беззнакового int</td>
<td align="right">4294967295</td>
<td align="right">4294967295</td>
<td align="right">≥ 65535
</td></tr>
<tr>
<td><code>LONG_MIN</code></td>
<td>Минимальное значение для long int</td>
<td align="right">−2147483648</td>
<td align="right">−9223372036854775808</td>
<td align="right">≤ −2147483647
</td></tr>
<tr>
<td><code>LONG_MAX</code></td>
<td>Максимальное значение для long int</td>
<td align="right">2147483647</td>
<td align="right">9223372036854775807</td>
<td align="right">≥ 2147483647
</td></tr>
<tr>
<td><code>ULONG_MAX</code></td>
<td>Максимальное значение для беззнакового long int</td>
<td align="right">4294967295</td>
<td align="right">18446744073709551615</td>
<td align="right">≥ 4294967295
</td></tr>
<tr>
<td><code>LLONG_MIN</code></td>
<td>Минимальное значение для long long int</td>
<td align="right">−9223372036854775808</td>
<td align="right">−9223372036854775808</td>
<td align="right">≤ −9223372036854775807
</td></tr>
<tr>
<td><code>LLONG_MAX</code></td>
<td>Максимальное значение для long long int</td>
<td align="right">9223372036854775807</td>
<td align="right">9223372036854775807</td>
<td align="right">≥ 9223372036854775807
</td></tr>
<tr>
<td><code>ULLONG_MAX</code></td>
<td>Максимальное значение для беззнакового long long int</td>
<td align="right">18446744073709551615</td>
<td align="right">18446744073709551615</td>
<td align="right">≥ 18446744073709551615
</td></tr></tbody></table>
<div class="mw-heading mw-heading2"><h2 id="Пример_1"><span id=".D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80_1"></span>Пример 1</h2></div>
<div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdio.h&gt;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;limits.h&gt;</span>
<span class="w"> </span>
<span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="w"> </span><span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="w"> </span>
<span class="p">{</span>
<span class="w">  </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">CHAR_MAX</span><span class="o">==</span><span class="n">UCHAR_MAX</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="n">printf</span><span class="p">(</span><span class="s">"This machine uses unsigned char by default</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
<span class="w">  </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span>
<span class="w">    </span><span class="n">printf</span><span class="p">(</span><span class="s">"This machine uses signed char by default</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span>
<span class="w">  </span><span class="p">}</span>
<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Пример_2"><span id=".D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80_2"></span>Пример 2</h2></div>
<div class="mw-highlight mw-highlight-lang-c mw-content-ltr" dir="ltr"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;limits.h&gt;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;locale.h&gt;</span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdio.h&gt;</span>

<span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span>
<span class="p">{</span>
<span class="w">	</span><span class="n">setlocale</span><span class="p">(</span><span class="n">LC_ALL</span><span class="p">,</span><span class="w"> </span><span class="s">"RUS"</span><span class="p">);</span>
<span class="w">	</span><span class="n">printf</span><span class="p">(</span><span class="s">"Максимальное значение типа int в этой системе составляет %d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">INT_MAX</span><span class="p">);</span>

<span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="См._также"><span id=".D0.A1.D0.BC._.D1.82.D0.B0.D0.BA.D0.B6.D0.B5"></span>См. также</h2></div>
<ul><li><a href="%D0%A1%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%B0%D1%8F_%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B0_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0_%D0%A1%D0%B8" title="Стандартная библиотека языка Си">Стандартная библиотека языка Си</a></li>
<li><a href="Float.h" title="Float.h">float.h</a>&nbsp;— Ограничение чисел с плавающей запятой</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Дополнительные_источники"><span id=".D0.94.D0.BE.D0.BF.D0.BE.D0.BB.D0.BD.D0.B8.D1.82.D0.B5.D0.BB.D1.8C.D0.BD.D1.8B.D0.B5_.D0.B8.D1.81.D1.82.D0.BE.D1.87.D0.BD.D0.B8.D0.BA.D0.B8"></span>Дополнительные источники</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.cwi.nl/~steven/enquire.html">Enquire</a>: Программа для автоматической генерации limits.h, также проверяющая корректность значений в уже существующем limits.h</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Ссылки"><span id=".D0.A1.D1.81.D1.8B.D0.BB.D0.BA.D0.B8"></span>Ссылки</h2></div>
<ul><li><code><a rel="nofollow" class="external text" href="http://www.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html">limits.h</a></code>&nbsp;—&nbsp;основные определения, <a href="Single_Unix_Specification" class="mw-redirect" title="Single Unix Specification">The Single UNIX® Specification</a>, выпуск 7 от <a href="The_Open_Group" title="The Open Group">The Open Group</a> &nbsp;<span class="ref-info" title="на английском языке" style="cursor:help;">(англ.)</span></li>
<li><a rel="nofollow" class="external text" href="https://web.archive.org/web/20081212215658/http://www.acm.uiuc.edu/webmonkeys/book/c_guide/2.5.html">Руководство по Си--2.5 limits.h</a>, доступно по состоянию на сентябрь 2006.</li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
    Эта статья взята у (из) <a class="external text" title="Последний раз редактировалась 2022-11-20" href="https://ru.wikipedia.org/wiki/?title=Limits.h&amp;oldid=126755755">Википедия</a>. Текст лицензируется по <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.ru">Creative Commons Attribution-Share Alike 4.0</a>. К медиа файлам могут применятся дополнительные условия.
</div>
</div><!--/htdig_noindex--></div>
      </div>
    </div>
     <script src="./_webp_/webpHandler.js"></script>
  

</body></html>