Files
hustoj/web/cppreference-zh/chmhelp/c-language-storage_duration.html
2025-08-01 12:57:54 +08:00

297 lines
28 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>&#23384;&#20648;&#31867;&#35828;&#26126;&#31526;</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-c_language_storage_duration skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#23384;&#20648;&#31867;&#35828;&#26126;&#31526;</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="c.html">c</a>&lrm; | <a href="c-language.html">language</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<p>&#25351;&#23450;&#23545;&#35937;&#21644;&#20989;&#25968;&#30340;<i>&#23384;&#20648;&#26399;&#65288; storage duration &#65289;</i>&#21644;<i>&#38142;&#25509;&#65288; linkage &#65289;</i>&#65306;</p>
<dl>
<dd>
<ul>
<li><code><b>auto</b></code> - &#33258;&#21160;&#23384;&#20648;&#26399;&#19982;&#26080;&#38142;&#25509;</li>
<li><code><b>register</b></code> - &#33258;&#21160;&#23384;&#20648;&#26399;&#19982;&#26080;&#38142;&#25509;&#65307;&#19981;&#33021;&#21462;&#36825;&#31181;&#23545;&#35937;&#30340;&#22320;&#22336;</li>
<li><code><b>static</b></code> - &#38745;&#24577;&#23384;&#20648;&#26399;&#19982;&#20869;&#37096;&#38142;&#25509;&#65288;&#38500;&#38750;&#22312;&#22359;&#20316;&#29992;&#22495;&#65289;</li>
<li><code><b>extern</b></code> - &#38745;&#24577;&#23384;&#20648;&#26399;&#19982;&#22806;&#37096;&#38142;&#25509;&#65288;&#38500;&#38750;&#24050;&#22768;&#26126;&#24102;&#20869;&#37096;&#38142;&#25509;&#65289;</li>
</ul>
</dd>
</dl>
<table class="t-rev-begin">
<tr class="t-rev t-since-c11">
<td>
<dl>
<dd>
<ul>
<li><code><b>_Thread_local</b></code> - &#32447;&#31243;&#23384;&#20648;&#26399;</li>
</ul>
</dd>
</dl>
</td>
<td><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E8.A7.A3.E9.87.8A">&#35299;&#37322;</span></h3>
<p>&#23384;&#20648;&#31867;&#35828;&#26126;&#31526;&#20986;&#29616;&#20110;<a href="c-language-declarations.html">&#22768;&#26126;</a>&#20013;&#12290;&#33267;&#22810;&#21487;&#20351;&#29992;&#19968;&#20010;&#35828;&#26126;&#31526;<span class="t-rev-inl t-since-c11"><span>&#65292;&#38500;&#20102;&#33021;&#23558; <code>_Thread_local</code> &#19982; <code>static</code> &#25110; <code>extern</code> &#32452;&#21512;&#20197;&#35843;&#25972;&#38142;&#25509;</span> <span><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></span></span>&#12290;&#23384;&#20648;&#31867;&#35828;&#26126;&#31526;&#30830;&#23450;&#20854;&#25152;&#22768;&#26126;&#30340;&#21517;&#31216;&#30340;&#20108;&#20010;&#29420;&#31435;&#23646;&#24615;&#65306;<i>&#23384;&#20648;&#26399;</i>&#19982;<i>&#38142;&#25509;</i>&#12290;</p>
<div class="t-li1"><span class="t-li">1)</span> <code>auto</code> &#35828;&#26126;&#31526;&#21482;&#23545;&#22768;&#26126;&#20110;&#22359;&#20316;&#29992;&#22495;&#30340;&#23545;&#35937;&#65288;&#38500;&#20102;&#20989;&#25968;&#21442;&#25968;&#21015;&#34920;&#65289;&#20801;&#35768;&#12290;&#23427;&#25351;&#31034;&#33258;&#21160;&#23384;&#20648;&#26399;&#19982;&#26080;&#38142;&#25509;&#65292;&#20063;&#26159;&#36825;&#31181;&#22768;&#26126;&#30340;&#40664;&#35748;&#23646;&#24615;&#12290;</div>
<div class="t-li1"><span class="t-li">2)</span> <code>register</code> &#35828;&#26126;&#31526;&#21482;&#23545;&#22768;&#26126;&#20110;&#22359;&#20316;&#29992;&#22495;&#30340;&#23545;&#35937;&#20801;&#35768;&#65292;&#21253;&#25324;&#20989;&#25968;&#21442;&#25968;&#21015;&#34920;&#12290;&#23427;&#25351;&#31034;&#33258;&#21160;&#23384;&#20648;&#26399;&#19982;&#26080;&#38142;&#25509;&#65288;&#21363;&#36825;&#31181;&#22768;&#26126;&#30340;&#40664;&#35748;&#23646;&#24615;&#65289;&#65292;&#20294;&#21478;&#22806;&#25552;&#31034;&#20248;&#21270;&#22120;&#65292;&#33509;&#21487;&#33021;&#21017;&#23558;&#27492;&#23545;&#35937;&#30340;&#20540;&#23384;&#20648;&#20110; CPU &#23492;&#23384;&#22120;&#20013;&#12290;&#26080;&#35770;&#27492;&#20248;&#21270;&#26159;&#21542;&#21457;&#29983;&#65292;&#22768;&#26126;&#20026; <code>register</code> &#30340;&#23545;&#35937;&#19981;&#33021;&#29992;&#20316;<a href="c-language-operator_member_access.html">&#21462;&#22336;&#36816;&#31639;&#31526;</a>&#30340;&#21442;&#25968;<span class="t-rev-inl t-since-c11"><span>&#65292;&#19981;&#33021;&#29992; <a href="c-language-_Alignas.html">_Alignas</a></span> <span><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></span></span>&#65292;&#32780;&#19988; <code>register</code> &#25968;&#32452;&#19981;&#33021;&#36716;&#25442;&#20026;&#25351;&#38024;&#12290;</div>
<div class="t-li1"><span class="t-li">3)</span> <code>static</code> &#35828;&#26126;&#31526;&#25351;&#23450;&#38745;&#24577;&#23384;&#20648;&#26399;<span class="t-rev-inl t-since-c11"><span>&#65288;&#38500;&#38750;&#19982; <code>_Thread_local</code> &#32452;&#21512;&#65289;</span> <span><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></span></span>&#21644;&#20869;&#37096;&#38142;&#25509;&#65288;&#38500;&#38750;&#29992;&#20110;&#22359;&#20316;&#29992;&#22495;&#65289;&#12290;&#23427;&#33021;&#29992;&#20110;&#22312;&#25991;&#20214;&#20316;&#29992;&#22495;&#30340;&#20989;&#25968;&#65292;&#20197;&#21450;&#25991;&#20214;&#21644;&#22359;&#20316;&#29992;&#22495;&#30340;&#23545;&#35937;&#65292;&#20294;&#19981;&#33021;&#29992;&#20110;&#20989;&#25968;&#21442;&#25968;&#21015;&#34920;&#12290;</div>
<div class="t-li1"><span class="t-li">4)</span> <code>extern</code> &#25351;&#23450;&#38745;&#24577;&#23384;&#20648;&#26399;<span class="t-rev-inl t-since-c11"><span>&#65288;&#38500;&#38750;&#19982; <code>_Thread_local</code> &#32452;&#21512;&#65289;</span> <span><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></span></span>&#21644;&#22806;&#37096;&#38142;&#25509;&#12290;&#23427;&#33021;&#29992;&#20110;&#25991;&#20214;&#21644;&#22359;&#20316;&#29992;&#22495;&#20013;&#30340;&#20989;&#25968;&#21644;&#23545;&#35937;&#22768;&#26126;&#65288;&#38500;&#20102;&#20989;&#25968;&#21442;&#25968;&#21015;&#34920;&#65289;&#12290;&#33509; <code>extern</code> &#20986;&#29616;&#22312;&#24050;&#32463;&#22768;&#26126;&#24102;&#20869;&#37096;&#38142;&#25509;&#30340;&#26631;&#35782;&#31526;&#30340;&#20877;&#22768;&#26126;&#19978;&#65292;&#21017;&#38142;&#25509;&#20173;&#20026;&#20869;&#37096;&#12290;&#21542;&#21017;&#65288;&#33509;&#21069;&#19968;&#22768;&#26126;&#20026;&#22806;&#37096;&#12289;&#26080;&#38142;&#25509;&#25110;&#19981;&#22312;&#20316;&#29992;&#22495;&#20869;&#65289;&#38142;&#25509;&#20026;&#22806;&#37096;&#12290;</div>
<table class="t-rev-begin">
<tr class="t-rev t-since-c11">
<td>
<div class="t-li1"><span class="t-li">5)</span> <code>_Thread_local</code> &#25351;&#31034;<i>&#32447;&#31243;&#23384;&#20648;&#26399;</i>&#12290;&#23427;&#19981;&#33021;&#29992;&#20110;&#20989;&#25968;&#22768;&#26126;&#12290;&#33509;&#23558;&#23427;&#29992;&#22312;&#23545;&#35937;&#22768;&#26126;&#19978;&#65292;&#21017;&#23427;&#24517;&#39035;&#22312;&#21516;&#19968;&#23545;&#35937;&#30340;&#27599;&#27425;&#22768;&#26126;&#19978;&#37117;&#23384;&#22312;&#12290;&#33509;&#23558;&#23427;&#29992;&#22312;&#22359;&#20316;&#29992;&#22495;&#22768;&#26126;&#19978;&#65292;&#21017;&#24517;&#39035;&#19982; <code>static</code> &#25110; <code>extern</code> &#20043;&#19968;&#32452;&#21512;&#20197;&#20915;&#23450;&#38142;&#25509;&#12290;</div>
</td>
<td><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></td>
</tr>
</table>
<p>&#33509;&#19981;&#25552;&#20379;&#23384;&#20648;&#31867;&#35828;&#26126;&#31526;&#65292;&#21017;&#40664;&#35748;&#20026;&#65306;</p>
<dl>
<dd>&#23545;&#25152;&#26377;&#20989;&#25968;&#20026; <code>extern</code></dd>
<dd>&#23545;&#22312;&#25991;&#20214;&#20316;&#29992;&#22495;&#30340;&#23545;&#35937;&#20026; <code>extern</code></dd>
<dd>&#23545;&#22312;&#22359;&#20316;&#29992;&#22495;&#30340;&#23545;&#35937;&#20026; <code>auto</code></dd>
</dl>
<p>&#23545;&#20110;&#20219;&#20309;&#29992;&#23384;&#20648;&#31867;&#35828;&#26126;&#31526;&#22768;&#26126;&#30340;&#32467;&#26500;&#20307;&#25110;&#32852;&#21512;&#20307;&#65292;&#23384;&#20648;&#26399;&#65288;&#20294;&#38750;&#38142;&#25509;&#65289;&#36882;&#24402;&#22320;&#24212;&#29992;&#21040;&#20854;&#25104;&#21592;&#12290;</p>
<p>&#22312;&#22359;&#20316;&#29992;&#22495;&#30340;&#20989;&#25968;&#22768;&#26126;&#33021;&#20351;&#29992; <code>extern</code> &#25110;&#23436;&#20840;&#19981;&#20351;&#29992;&#23384;&#20648;&#31867;&#35828;&#26126;&#31526;&#12290;&#22312;&#25991;&#20214;&#20316;&#29992;&#22495;&#30340;&#20989;&#25968;&#22768;&#26126;&#33021;&#20351;&#29992; <code>extern</code> &#25110; <code>static</code> &#12290;</p>
<p>&#20989;&#25968;&#21442;&#25968;&#19981;&#33021;&#20351;&#29992;&#24322;&#20110; <code>register</code> &#30340;&#23384;&#20648;&#31867;&#35828;&#26126;&#31526;&#12290;&#27880;&#24847; <code>static</code> &#22312;&#25968;&#32452;&#31867;&#22411;&#30340;&#20989;&#25968;&#21442;&#25968;&#20013;&#26377;&#29305;&#27530;&#21547;&#20041;&#12290;</p>
<h3><span class="mw-headline" id=".E5.AD.98.E5.82.A8.E6.9C.9F">&#23384;&#20648;&#26399;</span></h3>
<p>&#27599;&#20010;<a href="c-language-object.html">&#23545;&#35937;</a>&#37117;&#26377;&#31216;&#20026;<i>&#23384;&#20648;&#26399;</i>&#30340;&#23646;&#24615;&#65292;&#23427;&#38480;&#21046;&#23545;&#35937;&#30340;<a href="c-language-lifetime.html">&#29983;&#23384;&#26399;</a>&#12290; C &#20013;&#26377;&#22235;&#31181;&#23384;&#20648;&#26399;&#65306;</p>
<dl>
<dd>
<ul>
<li><i><b>&#33258;&#21160;</b></i>&#23384;&#20648;&#26399;&#12290;&#36827;&#20837;&#22768;&#26126;&#23545;&#35937;&#20110;&#20854;&#20013;&#30340;<a href="c-language-statements.html#.E5.A4.8D.E5.90.88.E8.AF.AD.E5.8F.A5">&#22359;</a>&#26102;&#20998;&#37197;&#20854;&#23384;&#20648;&#65292;&#32780;&#22312;&#20197;&#20219;&#20309;&#26041;&#24335;&#65288; <a href="c-language-goto.html">goto</a> &#12289; <a href="c-language-return.html">return</a> &#12289;&#25269;&#36798;&#32467;&#23614;&#65289;&#36864;&#20986;&#35813;&#22359;&#26102;&#35299;&#20998;&#37197;&#23384;&#20648;&#12290;<span class="t-rev-inl t-since-c99"><span>&#19968;&#20010;&#20363;&#22806;&#26159; <a href="c-language-array.html#.E5.8F.98.E9.95.BF.E5.BA.A6.E6.95.B0.E7.BB.84">VLA</a> &#65307;&#22312;&#25191;&#34892;&#22768;&#26126;&#26102;&#32780;&#38750;&#22359;&#20837;&#21475;&#20998;&#37197;&#20854;&#23384;&#20648;&#65292;&#24182;&#22312;&#22768;&#26126;&#31163;&#24320;&#20316;&#29992;&#22495;&#32780;&#38750;&#36864;&#20986;&#22359;&#26102;&#35299;&#20998;&#37197;&#23384;&#20648;&#12290;</span> <span><span class="t-mark-rev t-since-c99">(C99 &#36215;)</span></span></span>&#33509;&#36882;&#24402;&#22320;&#36827;&#20837;&#22359;&#65292;&#21017;&#23545;&#27599;&#20010;&#36882;&#24402;&#23618;&#36827;&#34892;&#26032;&#30340;&#20998;&#37197;&#12290;&#25152;&#26377;&#20989;&#25968;&#21442;&#25968;&#21644;&#38750; <code>static</code> &#22359;&#20316;&#29992;&#22495;&#23545;&#35937;&#65292;&#36824;&#26377;&#29992;&#20110;&#22359;&#20316;&#29992;&#22495;&#30340;<a href="c-language-compound_literal.html">&#22797;&#21512;&#23383;&#38754;&#37327;</a>&#25317;&#26377;&#27492;&#23384;&#20648;&#26399;&#12290;</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li><i><b>&#38745;&#24577;</b></i>&#23384;&#20648;&#26399;&#12290;&#23384;&#20648;&#26399;&#26159;&#25972;&#20010;&#31243;&#24207;&#30340;&#25191;&#34892;&#36807;&#31243;&#65292;&#21482;&#22312; <a href="c-language-main_function.html"><code>main</code> &#20989;&#25968;</a>&#20043;&#21069;&#21021;&#22987;&#21270;&#19968;&#27425;&#23384;&#20648;&#20110;&#23545;&#35937;&#30340;&#20540;&#12290;&#25152;&#26377;&#22768;&#26126;&#20026; <code>static</code> &#23545;&#35937;&#21644;&#25152;&#26377;&#24102;&#20869;&#37096;&#25110;&#22806;&#37096;&#38142;&#25509;<span class="t-rev-inl t-since-c11"><span>&#19988;&#19981;&#22768;&#26126;&#20026; <code>_Thread_local</code></span> <span><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></span></span>&#30340;&#23545;&#35937;&#37117;&#25317;&#26377;&#27492;&#23384;&#20648;&#26399;&#12290;</li>
</ul>
</dd>
</dl>
<table class="t-rev-begin">
<tr class="t-rev t-since-c11">
<td>
<dl>
<dd>
<ul>
<li><i><b>&#32447;&#31243;</b></i>&#23384;&#20648;&#26399;&#12290;&#23384;&#20648;&#26399;&#26159;&#21019;&#24314;&#23545;&#35937;&#30340;&#32447;&#31243;&#30340;&#25972;&#20010;&#25191;&#34892;&#36807;&#31243;&#65292;&#22312;&#21551;&#21160;&#32447;&#31243;&#26102;&#21021;&#22987;&#21270;&#23384;&#20648;&#20110;&#23545;&#35937;&#30340;&#20540;&#12290;&#27599;&#20010;&#32447;&#31243;&#25317;&#26377;&#20854;&#33258;&#36523;&#30340;&#30456;&#24322;&#23545;&#35937;&#12290;&#33509;&#25191;&#34892;&#35775;&#38382;&#27492;&#23545;&#35937;&#30340;&#34920;&#36798;&#24335;&#30340;&#32447;&#31243;&#65292;&#19981;&#26159;&#25191;&#34892;&#20854;&#21021;&#22987;&#21270;&#30340;&#32447;&#31243;&#65292;&#21017;&#34892;&#20026;&#26159;&#23454;&#29616;&#23450;&#20041;&#30340;&#12290;&#25152;&#26377;&#22768;&#26126;&#20026; <code>_Thread_local</code> &#30340;&#23545;&#35937;&#25317;&#26377;&#27492;&#23384;&#20648;&#26399;&#12290;</li>
</ul>
</dd>
</dl>
</td>
<td><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></td>
</tr>
</table>
<dl>
<dd>
<ul>
<li><i><b>&#20998;&#37197;</b></i>&#23384;&#20648;&#26399;&#12290;&#25353;&#29031;&#35831;&#27714;&#65292;&#29992;<a href="c-memory.html">&#21160;&#24577;&#20869;&#23384;&#20998;&#37197;</a>&#20989;&#25968;&#20998;&#37197;&#21644;&#35299;&#20998;&#37197;&#23384;&#20648;&#12290;</li>
</ul>
</dd>
</dl>
<h4><span class="mw-headline" id=".E9.93.BE.E6.8E.A5">&#38142;&#25509;</span></h4>
<p>&#38142;&#25509;&#25351;&#30340;&#26159;&#22312;&#20854;&#20182;&#20316;&#29992;&#22495;&#25351;&#20195;&#19968;&#20010;&#26631;&#35782;&#31526;&#65288;&#20855;&#21517;&#23545;&#35937;&#25110;&#20989;&#25968;&#65289;&#30340;&#33021;&#21147;&#12290;&#33509;&#22312;&#25968;&#20010;&#20316;&#29992;&#22495;&#20013;&#22768;&#26126;&#26377;&#21516;&#19968;&#26631;&#35782;&#31526;&#30340;&#23545;&#35937;&#25110;&#20989;&#25968;&#65292;&#20294;&#19981;&#33021;&#20174;&#25152;&#26377;&#36825;&#20123;&#20316;&#29992;&#22495;&#25351;&#20195;&#23427;&#20204;&#65292;&#21017;&#20250;&#21019;&#24314;&#25968;&#20010;&#23545;&#35937;&#30340;&#23454;&#20363;&#12290;&#36776;&#35782;&#19979;&#21015;&#38142;&#25509;&#65306;</p>
<dl>
<dd>
<ul>
<li><i><b>&#26080;&#38142;&#25509;</b></i>&#12290;&#21482;&#33021;&#20174;&#20854;&#25152;&#22312;&#30340;&#20316;&#29992;&#22495;&#25351;&#20195;&#35813;&#26631;&#35782;&#31526;&#12290;&#25152;&#26377;&#20989;&#25968;&#21442;&#25968;&#21644;&#25152;&#26377;&#38750; <code>extern</code> &#30340;&#22359;&#20316;&#29992;&#22495;&#23545;&#35937;&#65288;&#21253;&#21547;&#22768;&#26126;&#20026; <code>static</code> &#32773;&#65289;&#25317;&#26377;&#27492;&#38142;&#25509;&#12290;</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li><i><b>&#20869;&#37096;&#38142;&#25509;</b></i>&#12290;&#33021;&#20174;&#24403;&#21069;&#32763;&#35793;&#21333;&#20803;&#30340;&#25152;&#26377;&#20316;&#29992;&#22495;&#25351;&#20195;&#35813;&#26631;&#35782;&#31526;&#12290;&#25152;&#26377; <code>static</code> &#25991;&#20214;&#20316;&#29992;&#22495;&#26631;&#35782;&#31526;&#65288;&#20989;&#25968;&#21644;&#23545;&#35937;&#65289;&#37117;&#25317;&#26377;&#27492;&#38142;&#25509;&#12290;</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li><i><b>&#22806;&#37096;&#38142;&#25509;</b></i>&#12290;&#33021;&#20174;&#25972;&#20010;&#31243;&#24207;&#30340;&#20219;&#20309;&#20854;&#20182;&#32763;&#35793;&#21333;&#20803;&#25351;&#20195;&#35813;&#26631;&#35782;&#31526;&#12290;&#25152;&#26377;&#38750; <code>static</code> &#20989;&#25968;&#12289;&#25152;&#26377; <code>extern</code> &#23545;&#35937;&#65288;&#38500;&#38750;&#20043;&#21069;&#22768;&#26126;&#20026; <code>static</code> &#65289;&#21644;&#25152;&#26377;&#25991;&#20214;&#20316;&#29992;&#22495;&#30340;&#38750; <code>static</code> &#23545;&#35937;&#25317;&#26377;&#27492;&#38142;&#25509;&#12290;</li>
</ul>
</dd>
</dl>
<p>&#33509;&#21516;&#19968;&#26631;&#35782;&#31526;&#22312;&#21516;&#19968;&#32763;&#35793;&#21333;&#20803;&#20013;&#19968;&#21516;&#24102;&#20869;&#37096;&#21644;&#22806;&#37096;&#38142;&#25509;&#20986;&#29616;&#65292;&#21017;&#34892;&#20026;&#26410;&#23450;&#20041;&#12290;&#36825;&#22312;&#20351;&#29992;<a href="c-language-extern.html">&#35797;&#25506;&#24615;&#23450;&#20041;</a>&#26102;&#26377;&#21487;&#33021;&#12290;</p>
<h4><span class="mw-headline" id=".E9.93.BE.E6.8E.A5.E4.B8.8E.E5.BA.93">&#38142;&#25509;&#19982;&#24211;</span></h4>
<table class="metadata plainlinks ambox mbox-small-left ambox-notice" style="">
<tr>
<td class="mbox-empty-cell"></td>
<td class="mbox-text" style="">&#26412;&#33410;&#26410;&#23436;&#25104;<br />
&#21407;&#22240;&#65306;&#36825;&#25110;&#35768;&#24212;&#35813;&#20026; <a href="c-language.html">c/language</a> &#20013;<b>&#26434;&#39033;</b>&#19979;&#30340;&#39030;&#23618;&#26465;&#30446;&#65311;</td>
</tr>
</table>
<p>&#24102;&#22806;&#37096;&#38142;&#25509;&#30340;&#22768;&#26126;&#24120;&#22312;&#22836;&#25991;&#20214;&#20013;&#21487;&#29992;&#65292;&#36825;&#20351;&#24471;&#25152;&#26377; <a href="c-preprocessor-include.html">#include</a> &#35813;&#22836;&#25991;&#20214;&#30340;&#32763;&#35793;&#21333;&#20803;&#37117;&#21487;&#20197;&#25351;&#20195;&#23450;&#20041;&#20110;&#21035;&#22788;&#30340;&#30456;&#21516;&#26631;&#35782;&#31526;&#12290;</p>
<p>&#20219;&#20309;&#20986;&#29616;&#20110;&#22836;&#25991;&#20214;&#20013;&#30340;&#24102;&#20869;&#37096;&#38142;&#25509;&#30340;&#22768;&#26126;&#65292;&#22312;&#27599;&#20010;&#21253;&#21547;&#35813;&#25991;&#20214;&#30340;&#32763;&#35793;&#21333;&#20803;&#20013;&#20135;&#29983;&#19968;&#20010;&#20998;&#31163;&#32780;&#30456;&#24322;&#30340;&#23545;&#35937;&#25110;&#20989;&#25968;&#12290;</p>
<p>&#24211;&#25509;&#21475;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="co1">// flib.h</span>
<span class="co2">#ifndef FLIB_H</span>
<span class="co2">#define FLIB_H</span>
<span class="kw4">void</span> f<span class="br0">(</span><span class="kw4">void</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#24102;&#22806;&#37096;&#38142;&#25509;&#30340;&#20989;&#25968;&#22768;&#26126;</span>
<span class="kw2">extern</span> <span class="kw4">int</span> state<span class="sy4">;</span> <span class="co1">// &#24102;&#22806;&#37096;&#38142;&#25509;&#30340;&#23545;&#35937;&#22768;&#26126;</span>
<span class="kw4">static</span> <span class="kw4">const</span> <span class="kw4">int</span> size <span class="sy1">=</span> <span class="nu0">5</span><span class="sy4">;</span> <span class="co1">// &#24102;&#20869;&#37096;&#38142;&#25509;&#30340;&#21482;&#35835;&#23545;&#35937;&#23450;&#20041;</span>
<span class="kw2">enum</span> <span class="br0">{</span> MAX <span class="sy1">=</span> <span class="nu0">10</span> <span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#24120;&#37327;&#23450;&#20041;</span>
<span class="kw1">inline</span> <span class="kw4">int</span> sum <span class="br0">(</span><span class="kw4">int</span> a, <span class="kw4">int</span> b<span class="br0">)</span> <span class="br0">{</span> <span class="kw1">return</span> a<span class="sy2">+</span>b<span class="sy4">;</span> <span class="br0">}</span> <span class="co1">// inline &#20989;&#25968;&#23450;&#20041;</span>
<span class="co2">#endif // FLIB_H</span></pre></div>
</div>
<p>&#24211;&#23454;&#29616;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="co1">// flib.c</span>
<span class="co2">#include &quot;flib.h&quot;</span>
<span class="kw4">static</span> <span class="kw4">void</span> local_f<span class="br0">(</span><span class="kw4">int</span> s<span class="br0">)</span> <span class="br0">{</span><span class="br0">}</span> <span class="co1">// &#24102;&#20869;&#37096;&#38142;&#25509;&#30340;&#23450;&#20041;&#65288;&#21482;&#29992;&#20110;&#27492;&#25991;&#20214;&#65289;</span>
<span class="kw4">static</span> <span class="kw4">int</span> local_state<span class="sy4">;</span> <span class="co1">// &#24102;&#20869;&#37096;&#38142;&#25509;&#30340;&#23450;&#20041;&#65288;&#21482;&#29992;&#20110;&#27492;&#25991;&#20214;&#65289;</span>
<span class="kw4">int</span> state<span class="sy4">;</span> <span class="co1">// &#24102;&#22806;&#37096;&#38142;&#25509;&#30340;&#23450;&#20041;&#65288; main.c &#20351;&#29992;&#65289;</span>
<span class="kw4">void</span> f<span class="br0">(</span><span class="kw4">void</span><span class="br0">)</span> <span class="br0">{</span>local_f<span class="br0">(</span>state<span class="br0">)</span><span class="sy4">;</span><span class="br0">}</span> <span class="co1">// &#24102;&#22806;&#37096;&#38142;&#25509;&#30340;&#23450;&#20041;&#65288; main.c &#20351;&#29992;&#65289;</span></pre></div>
</div>
<p>&#24212;&#29992;&#20195;&#30721;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="co1">// main.c </span>
<span class="co2">#include &quot;flib.h&quot;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="kw4">void</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="kw4">int</span> x<span class="br0">[</span>MAX<span class="br0">]</span> <span class="sy1">=</span> <span class="br0">{</span>size<span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#20351;&#29992;&#24120;&#37327;&#21644;&#21482;&#35835;&#21464;&#37327;</span>
state <span class="sy1">=</span> <span class="nu0">7</span><span class="sy4">;</span> <span class="co1">// &#20462;&#25913; flib.c &#20013;&#30340; state</span>
f<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#35843;&#29992; flib.c &#20013;&#30340; f()</span>
<span class="br0">}</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E5.85.B3.E9.94.AE.E8.AF.8D">&#20851;&#38190;&#35789;</span></h3>
<p><a href="c-keyword-auto.html"><tt>auto</tt></a>, <a href="c-keyword-register.html"><tt>register</tt></a>, <a href="c-keyword-static.html"><tt>static</tt></a>, <a href="c-keyword-extern.html"><tt>extern</tt></a>, <a href="c-keyword-_Thread_local.html"><tt>_Thread_local</tt></a></p>
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3">&#27880;&#35299;</span></h3>
<p>&#19968;&#33324;&#36890;&#36807;&#23450;&#20041;&#20110;&#22836;&#25991;&#20214; <code>threads.h</code> &#30340;&#20415;&#21033;&#23439; <span class="t-lc"><a href="c-thread-thread_local.html">thread_local</a></span> &#20351;&#29992;&#20851;&#38190;&#35789; <code>_Thread_local</code> &#12290;</p>
<p>C &#35821;&#35328;&#25991;&#27861;&#20013;&#65292; <a href="c-language-typedef.html"><code>typedef</code></a> &#35828;&#26126;&#31526;&#22312;&#24418;&#24335;&#19978;&#21015;&#20316;&#23384;&#20648;&#31867;&#35828;&#26126;&#31526;&#65292;&#20294;&#23427;&#34987;&#29992;&#20110;&#22768;&#26126;&#31867;&#22411;&#21517;&#65292;&#32780;&#19981;&#25351;&#23450;&#23384;&#20648;&#12290;</p>
<p>&#22312;&#25991;&#20214;&#20316;&#29992;&#22495;&#30340; <code>const</code> &#19988;&#38750; <code>extern</code> &#30340;&#21517;&#31216;&#22312; C &#20013;&#25317;&#26377;&#22806;&#37096;&#38142;&#25509;&#65288;&#21516;&#25152;&#26377;&#25991;&#20214;&#20316;&#29992;&#22495;&#30340;&#40664;&#35748;&#24773;&#20917;&#65289;&#65292;&#20294;&#22312; C++ &#20013;&#25317;&#26377;&#20869;&#37096;&#38142;&#25509;&#12290;</p>
<h3><span class="mw-headline" id=".E7.A4.BA.E4.BE.8B">&#31034;&#20363;</span></h3>
<div class="t-example">
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="co2">#include &lt;stdio.h&gt;</span>
<span class="co2">#include &lt;stdlib.h&gt;</span>
<span class="kw4">int</span> A<span class="sy4">;</span> <span class="co1">// &#38745;&#24577;&#23384;&#20648;&#26399;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="kw4">void</span><span class="br0">)</span>
<span class="br0">{</span>
<a href="c-io-fprintf.html"><span class="kw851">printf</span></a><span class="br0">(</span><span class="st0">&quot;&amp;A = %p<span class="es1">\n</span>&quot;</span>, <span class="br0">(</span><span class="kw4">void</span><span class="sy2">*</span><span class="br0">)</span><span class="sy3">&amp;</span>A<span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#33258;&#21160;&#23384;&#20648;&#26399;</span>
<span class="kw4">int</span> A <span class="sy1">=</span> <span class="nu0">1</span><span class="sy4">;</span> <span class="co1">// &#38544;&#34255;&#20840;&#23616; A</span>
<a href="c-io-fprintf.html"><span class="kw851">printf</span></a><span class="br0">(</span><span class="st0">&quot;&amp;A = %p<span class="es1">\n</span>&quot;</span>, <span class="br0">(</span><span class="kw4">void</span><span class="sy2">*</span><span class="br0">)</span><span class="sy3">&amp;</span>A<span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#20998;&#37197;&#23384;&#20648;&#26399;</span>
<span class="kw4">int</span> <span class="sy2">*</span>ptr_1 <span class="sy1">=</span> <a href="c-memory-malloc.html"><span class="kw403">malloc</span></a><span class="br0">(</span><span class="kw4">sizeof</span><span class="br0">(</span><span class="kw4">int</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#24320;&#22987;&#20998;&#37197;&#23384;&#20648;&#26399;</span>
<a href="c-io-fprintf.html"><span class="kw851">printf</span></a><span class="br0">(</span><span class="st0">&quot;address of int in allocated memory = %p<span class="es1">\n</span>&quot;</span>, <span class="br0">(</span><span class="kw4">void</span><span class="sy2">*</span><span class="br0">)</span>ptr_1<span class="br0">)</span><span class="sy4">;</span>
<a href="c-memory-free.html"><span class="kw406">free</span></a><span class="br0">(</span>ptr_1<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#20572;&#27490;&#20998;&#37197;&#23384;&#20648;&#26399;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#21487;&#33021;&#30340;&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">&amp;A = 0x600ae4
&amp;A = 0x7ffefb064f5c
address of int in allocated memory = 0x1f28c30</pre></div>
</div>
</div>
<h3><span class="mw-headline" id=".E5.BC.95.E7.94.A8">&#24341;&#29992;</span></h3>
<div class="t-ref-std-11">
<ul>
<li>C11 &#26631;&#20934;&#65288;ISO/IEC 9899:2011&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>6.2.2 Linkages of identifiers (p: 36-37)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>6.2.4 Storage durations of objects (p: 38-39)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>6.7.1 Storage-class specifiers (p: 109-110)</li>
</ul>
</dd>
</dl>
<div class="t-ref-std-c99">
<ul>
<li>C99 &#26631;&#20934;&#65288;ISO/IEC 9899:1999&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>6.2.2 Linkages of identifiers (p: 30-31)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>6.2.4 Storage durations of objects (p: 32)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>6.7.1 Storage-class specifiers (p: 98-99)</li>
</ul>
</dd>
</dl>
<div class="t-ref-std-c89">
<ul>
<li>C89/C90 &#26631;&#20934;&#65288;ISO/IEC 9899:1990&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>3.1.2.2 Linkages of identifiers</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>3.1.2.4 Storage durations of objects</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>3.5.1 Storage-class specifiers</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>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>