Files
hustoj/web/cppreference-zh/chmhelp/cpp-freestanding.html
2025-08-01 12:57:54 +08:00

305 lines
14 KiB
HTML

<!DOCTYPE html>
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>&#29420;&#31435;&#19982;&#23487;&#20027;&#23454;&#29616;</title>
<link rel="stylesheet" href="ext.css" />
<link rel="stylesheet" href="site_modules.css" />
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_freestanding skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#29420;&#31435;&#19982;&#23487;&#20027;&#23454;&#29616;</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<p>C++ &#26631;&#20934;&#23450;&#20041;&#20102;&#20004;&#31181;&#23454;&#29616;&#65306;<i><b>&#26377;&#23487;&#20027;</b> (hosted)</i> &#19982;<i><b>&#29420;&#31435;</b> (freestanding)</i> &#23454;&#29616;&#12290; C++ &#26631;&#20934;&#23545;<i>&#26377;&#23487;&#20027;</i>&#23454;&#29616;&#25152;&#35268;&#23450;&#30340;&#26631;&#20934;&#24211;&#22836;&#25991;&#20214;&#38598;&#21512;&#27604;&#23545;<i>&#29420;&#31435;</i>&#23454;&#29616;&#25152;&#35268;&#23450;&#30340;&#22823;&#24456;&#22810;&#12290;<i>&#29420;&#31435;</i>&#23454;&#29616;&#20013;&#31243;&#24207;&#21487;&#33021;&#22312;&#27809;&#26377;&#25805;&#20316;&#31995;&#32479;&#30340;&#24773;&#20917;&#19979;&#36816;&#34892;&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx11">
<td>
<p>&#23439; <code>__STDC_HOSTED__</code> &#23545;&#23487;&#20027;&#23454;&#29616;&#39044;&#23450;&#20041;&#20026; <code>1</code> &#65292;&#23545;&#29420;&#31435;&#23454;&#29616;&#20026; <code>0</code> &#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
</table>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx11">
<td>
<h3><span class="mw-headline" id=".E9.92.88.E5.AF.B9.E5.A4.9A.E7.BA.BF.E7.A8.8B.E6.89.A7.E8.A1.8C.E4.B8.8E.E6.95.B0.E6.8D.AE.E7.AB.9E.E4.BA.89.E7.9A.84.E8.A7.84.E5.AE.9A">&#38024;&#23545;<a href="cpp-language-memory_model.html">&#22810;&#32447;&#31243;&#25191;&#34892;&#19982;&#25968;&#25454;&#31454;&#20105;</a>&#30340;&#35268;&#23450;</span></h3>
<table cellpadding="8">
<tr>
<th><i>&#29420;&#31435;</i></th>
<th><i>&#26377;&#23487;&#20027;</i></th>
</tr>
<tr>
<td><i>&#29420;&#31435;</i>&#23454;&#29616;&#19979;&#65292;&#31243;&#24207;&#33021;&#21542;&#25317;&#26377;&#22810;&#20110;&#19968;&#20010;<a href="cpp-thread.html">&#25191;&#34892;&#32447;&#31243;</a>&#30001;&#23454;&#29616;&#23450;&#20041;&#12290;</td>
<td><i>&#26377;&#23487;&#20027;</i>&#23454;&#29616;&#19979;&#65292; C++ &#31243;&#24207;&#21487;&#20197;&#25317;&#26377;&#22810;&#20110;&#19968;&#20010;&#21516;&#26102;&#36816;&#34892;&#30340;<a href="cpp-thread.html">&#32447;&#31243;</a>&#12290;</td>
</tr>
</table>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E9.92.88.E5.AF.B9_main_.E5.87.BD.E6.95.B0.E7.9A.84.E8.A6.81.E6.B1.82">&#38024;&#23545; <a href="cpp-language-main_function.html"><tt>main</tt></a> &#20989;&#25968;&#30340;&#35201;&#27714;</span></h3>
<table cellpadding="8|">
<tr>
<th><i>&#29420;&#31435;</i></th>
<th><i>&#26377;&#23487;&#20027;</i></th>
</tr>
<tr>
<td><i>&#29420;&#31435;</i>&#23454;&#29616;&#20013;&#65292;&#26159;&#21542;&#35201;&#27714;&#31243;&#24207;&#23450;&#20041; <a href="cpp-language-main_function.html"><tt>main</tt></a> &#20989;&#25968;&#26159;&#30001;&#23454;&#29616;&#23450;&#20041;&#30340;&#12290;&#21551;&#21160;&#19982;&#32456;&#27490;&#36807;&#31243;&#26159;&#30001;&#23454;&#29616;&#23450;&#20041;&#30340;&#65307;&#21551;&#21160;&#36807;&#31243;&#20013;&#21253;&#21547;&#25191;&#34892;&#20855;&#26377;&#38745;&#24577;<a href="cpp-language-storage_duration.html">&#23384;&#20648;&#26399;</a>&#30340;<a href="cpp-language-scope.html#.E5.91.BD.E5.90.8D.E7.A9.BA.E9.97.B4.E4.BD.9C.E7.94.A8.E5.9F.9F">&#21629;&#21517;&#31354;&#38388;&#20316;&#29992;&#22495;</a>&#23545;&#35937;&#30340;<a href="cpp-language-constructor.html">&#26500;&#36896;&#20989;&#25968;</a>&#65307;&#32456;&#27490;&#36807;&#31243;&#20013;&#21253;&#21547;&#25191;&#34892;&#20855;&#26377;&#38745;&#24577;<a href="cpp-language-storage_duration.html">&#23384;&#20648;&#26399;</a>&#30340;&#23545;&#35937;&#30340;<a href="cpp-language-destructor.html">&#26512;&#26500;&#20989;&#25968;</a>&#12290;</td>
<td><i>&#26377;&#23487;&#20027;</i>&#23454;&#29616;&#20013;&#65292;&#31243;&#24207;&#24517;&#39035;&#21253;&#21547;&#19968;&#20010;&#21517;&#20026; <a href="cpp-language-main_function.html"><tt>main</tt></a> &#30340;&#20840;&#23616;&#20989;&#25968;&#12290;&#31243;&#24207;&#25191;&#34892;&#26102;&#21551;&#21160;&#19968;&#20010;&#20027;<a href="cpp-thread.html">&#25191;&#34892;&#32447;&#31243;</a>&#65292;&#22312;&#20854;&#20013;&#35843;&#29992; <code>main</code> &#20989;&#25968;&#65292;&#24182;&#19988;&#20855;&#26377;&#38745;&#24577;<a href="cpp-language-storage_duration.html">&#23384;&#20648;&#26399;</a>&#30340;&#21464;&#37327;&#23558;&#22312;&#35813;&#32447;&#31243;&#20013;&#34987;&#21021;&#22987;&#21270;&#21644;&#38144;&#27585;&#12290;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E9.92.88.E5.AF.B9.E6.A0.87.E5.87.86.E5.BA.93.E5.A4.B4.E6.96.87.E4.BB.B6.E7.9A.84.E8.A7.84.E5.AE.9A">&#38024;&#23545;<a href="cpp-header.html">&#26631;&#20934;&#24211;&#22836;&#25991;&#20214;</a>&#30340;&#35268;&#23450;</span></h3>
<p><i>&#29420;&#31435;</i>&#23454;&#29616;&#25317;&#26377;&#30001;&#23454;&#29616;&#23450;&#20041;&#30340;&#22836;&#25991;&#20214;&#38598;&#21512;&#12290;&#27492;&#38598;&#21512;&#33267;&#23569;&#21253;&#21547;&#19979;&#34920;&#20013;&#30340;&#22836;&#25991;&#20214;&#65306;</p>
<table class="wikitable">
<caption style="padding:6px;"><i>&#29420;&#31435;</i>&#23454;&#29616;&#25152;&#35268;&#23450;&#30340;&#22836;&#25991;&#20214;</caption>
<tr>
<td>&#31867;&#22411;</td>
<td><a href="cpp-header-cstddef.html"><tt>&lt;cstddef&gt;</tt></a></td>
</tr>
<tr>
<td>&#23454;&#29616;&#30340;&#23646;&#24615;</td>
<td><a href="cpp-header-limits.html"><tt>&lt;limits&gt;</tt></a><br />
<a href="cpp-header-cfloat.html"><tt>&lt;cfloat&gt;</tt></a> <a href="cpp-header-climits.html"><tt>&lt;climits&gt;</tt></a> <span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span><br />
<a href="cpp-header-version.html"><tt>&lt;version&gt;</tt></a> <span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
<tr>
<td>&#25972;&#25968;&#31867;&#22411;</td>
<td><a href="cpp-header-cstdint.html"><tt>&lt;cstdint&gt;</tt></a> <span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td>&#21551;&#21160;&#19982;&#32456;&#27490;</td>
<td><a href="cpp-header-cstdlib.html"><tt>&lt;cstdlib&gt;</tt></a> <span class="t-mark">(&#37096;&#20998;)</span><sup id="cite_ref-1" class="reference"><a href="cpp-freestanding.html#cite_note-1">[1]</a></sup></td>
</tr>
<tr>
<td>&#21160;&#24577;&#20869;&#23384;&#31649;&#29702;</td>
<td><a href="cpp-header-new.html"><tt>&lt;new&gt;</tt></a></td>
</tr>
<tr>
<td>&#31867;&#22411;&#37492;&#21035;</td>
<td><a href="cpp-header-typeinfo.html"><tt>&lt;typeinfo&gt;</tt></a></td>
</tr>
<tr>
<td>&#28304;&#25991;&#20214;&#20301;&#32622;</td>
<td><a href="cpp-header-source_location.html"><tt>&lt;source_location&gt;</tt></a> <span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
<tr>
<td>&#24322;&#24120;&#22788;&#29702;</td>
<td><a href="cpp-header-exception.html"><tt>&lt;exception&gt;</tt></a></td>
</tr>
<tr>
<td>&#21021;&#22987;&#21270;&#22120;&#21015;&#34920;</td>
<td><a href="cpp-header-initializer_list.html"><tt>&lt;initializer_list&gt;</tt></a> <span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td>&#27604;&#36739;</td>
<td><a href="cpp-header-compare.html"><tt>&lt;compare&gt;</tt></a> <span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
<tr>
<td>&#21327;&#31243;&#25903;&#25345;</td>
<td><a href="cpp-header-coroutine.html"><tt>&lt;coroutine&gt;</tt></a> <span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
<tr>
<td>&#20854;&#20182;&#36816;&#34892;&#26102;&#25903;&#25345;</td>
<td><a href="cpp-header-cstdarg.html"><tt>&lt;cstdarg&gt;</tt></a></td>
</tr>
<tr>
<td>&#22522;&#30784;&#24211;&#27010;&#24565;</td>
<td><a href="cpp-header-concepts.html"><tt>&lt;concepts&gt;</tt></a> <span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
<tr>
<td>&#31867;&#22411;&#29305;&#24449;</td>
<td><a href="cpp-header-type_traits.html"><tt>&lt;type_traits&gt;</tt></a> <span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td>&#20301;&#25805;&#20316;</td>
<td><a href="cpp-header-bit.html"><tt>&lt;bit&gt;</tt></a> <span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
<tr>
<td>&#21407;&#23376;&#31867;&#22411;</td>
<td><a href="cpp-header-atomic.html"><tt>&lt;atomic&gt;</tt></a> <span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span><sup id="cite_ref-2" class="reference"><a href="cpp-freestanding.html#cite_note-2">[2]</a></sup></td>
</tr>
<tr>
<td></td>
<td><a href="cpp-header-ciso646.html"><tt>&lt;ciso646&gt;</tt></a> <span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span><span class="t-mark-rev t-until-cxx20">(C++20 &#21069;)</span></td>
</tr>
<tr>
<td>&#24050;&#24323;&#29992;&#30340;&#22836;&#25991;&#20214;</td>
<td><a href="cpp-header-cstdalign.html"><tt>&lt;cstdalign&gt;</tt></a> <a href="cpp-header-cstdbool.html"><tt>&lt;cstdbool&gt;</tt></a> <span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span><span class="t-mark-rev t-until-cxx20">(C++20 &#21069;)</span></td>
</tr>
</table>
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="cpp-freestanding.html#cite_ref-1">&uarr;</a></span> <span class="reference-text">&#22836;&#25991;&#20214; <code>&lt;cstdlib&gt;</code> &#30340;&#21463;&#25903;&#25345;&#29256;&#26412;&#24212;&#24403;&#33267;&#23569;&#22768;&#26126;&#20989;&#25968; <span class="t-lc"><a href="cpp-utility-program-abort.html">std::abort</a></span> &#12289; <span class="t-lc"><a href="cpp-utility-program-atexit.html">std::atexit</a></span> &#12289; <span class="t-lc"><a href="cpp-utility-program-exit.html">std::exit</a></span> <span class="t-rev-inl t-since-cxx11"><span>&#12289; <span class="t-lc"><a href="cpp-utility-program-at_quick_exit.html">std::at_quick_exit</a></span> &#21450; <span class="t-lc"><a href="cpp-utility-program-quick_exit.html">std::quick_exit</a></span></span> <span><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></span></span> &#12290;</span></li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="cpp-freestanding.html#cite_ref-2">&uarr;</a></span> <span class="reference-text"><span class="t-rev-inl t-since-cxx20"><span>&#22987;&#32456;&#20813;&#38145;&#30340;&#25972;&#25968;&#21407;&#23376;&#31867;&#22411;&#30340;&#25903;&#25345;&#65292;&#20197;&#21450;&#31867;&#22411;&#21035;&#21517; <span class="t-lc">std::atomic_signed_lock_free</span> &#19982; <span class="t-lc">std::atomic_unsigned_lock_free</span> &#26159;&#21542;&#23384;&#22312;&#22312;&#33258;&#31435;&#23454;&#29616;&#26159;&#23454;&#29616;&#23450;&#20041;&#30340;&#12290;</span> <span><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></span></span></span></li>
</ol>
<h3><span class="mw-headline" id=".E5.BC.95.E7.94.A8">&#24341;&#29992;</span></h3>
<div class="t-ref-std-c++20">
<ul>
<li>C++20 &#26631;&#20934;&#65288;ISO/IEC 14882:2020&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>4.1 Implementation compliance [intro.compliance](p: 7)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>6.9.2 Multi-threaded executions and data races [intro.multithread](p: 77)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>6.9.3.1 main function [basic.start.main](p: 82)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>16.5.1.3 Freestanding implementations [compliance](p: 470)</li>
</ul>
</dd>
</dl>
</div>
<div class="t-ref-std-c++17">
<ul>
<li>C++17 &#26631;&#20934;&#65288;ISO/IEC 14882:2017&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>4.1 Implementation compliance [intro.compliance](p: 5)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>4.7 Multi-threaded executions and data races [intro.multithread](p: 15)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>6.6.1 main function [basic.start.main](p: 66)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>20.5.1.3 Freestanding implementations [compliance](p: 458)</li>
</ul>
</dd>
</dl>
</div>
<div class="t-ref-std-c++14">
<ul>
<li>C++14 &#26631;&#20934;&#65288;ISO/IEC 14882:2014&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>1.4 Implementation compliance [intro.compliance](p: 5)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>1.10 Multi-threaded executions and data races [intro.multithread](p: 11)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>3.6.1 Main function [basic.start.main](p: 62)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>17.6.1.3 Freestanding implementations [compliance](p: 441)</li>
</ul>
</dd>
</dl>
</div>
<div class="t-ref-std-c++11">
<ul>
<li>C++11 &#26631;&#20934;&#65288;ISO/IEC 14882:2011&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>1.4 Implementation compliance [intro.compliance](p: 5)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>1.10 Multi-threaded executions and data races [intro.multithread](p: 11)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>3.6.1 Main function [basic.start.main](p: 58)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>17.6.1.3 Freestanding implementations [compliance](p: 408)</li>
</ul>
</dd>
</dl>
</div>
<div class="t-ref-std-c++03">
<ul>
<li>C++03 &#26631;&#20934;&#65288;ISO/IEC 14882:2003&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>1.4 Implementation compliance [intro.compliance](p: 3)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>3.6.1 Main function [basic.start.main](p: 43)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>17.4.1.3 Freestanding implementations [lib.compliance](p: 326)</li>
</ul>
</dd>
</dl>
</div>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<table class="t-dsc-begin"></table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>