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

346 lines
33 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>&#22768;&#26126;</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_declarations skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#22768;&#26126;</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><i>&#22768;&#26126;</i>&#26159;&#19968;&#20010;&#24341;&#20837;&#19968;&#20010;&#25110;&#22810;&#20010;<a href="c-language-identifier.html">&#26631;&#35782;&#31526;</a>&#21040;&#31243;&#24207;&#20013;&#65292;&#24182;&#25351;&#23450;&#20854;&#21547;&#20041;&#21450;&#23646;&#24615;&#30340; C &#35821;&#35328;&#26500;&#36896;&#12290;</p>
<p>&#22768;&#26126;&#21487;&#20197;&#20986;&#29616;&#22312;&#20219;&#20309;&#20316;&#29992;&#22495;&#20013;&#12290;&#27599;&#20010;&#22768;&#26126;&#20197;&#20998;&#21495;&#32467;&#26463;&#65288;&#31867;&#20284;<a href="c-language-statements.html">&#35821;&#21477;</a>&#65289;&#65292;&#24182;&#30001;<span class="t-rev-inl t-until-c23"><span>&#20004;</span> <span><span class="t-mark-rev t-until-c23">(C23 &#21069;)</span></span></span><span class="t-rev-inl t-since-c23"><span>&#19977;</span> <span><span class="t-mark-rev t-since-c23">(C23 &#36215;)</span></span></span>&#20010;&#29420;&#31435;&#37096;&#20998;&#32452;&#25104;&#65306;</p>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#35828;&#26126;&#31526;&#19982;&#38480;&#23450;&#31526;</span> <span class="t-spar">&#22768;&#26126;&#31526;&#19982;&#21021;&#22987;&#21270;&#22120;</span><span class="t-mark">(&#21487;&#36873;)</span> <code><b>;</b></code></td>
<td>(1)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#23646;&#24615;&#35828;&#26126;&#31526;&#24207;&#21015;</span> <span class="t-spar">&#35828;&#26126;&#31526;&#19982;&#38480;&#23450;&#31526;</span> <span class="t-spar">&#22768;&#26126;&#31526;&#19982;&#21021;&#22987;&#21270;&#22120;</span> <code><b>;</b></code></td>
<td>(2)</td>
<td><span class="t-mark-rev t-since-c23">(C23 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#23646;&#24615;&#35828;&#26126;&#31526;&#24207;&#21015;</span> <code><b>;</b></code></td>
<td>(3)</td>
<td><span class="t-mark-rev t-since-c23">(C23 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<p>&#20854;&#20013;</p>
<table class="t-par-begin">
<tr class="t-par">
<td><span class="t-spar">&#35828;&#26126;&#31526;&#19982;&#38480;&#23450;&#31526;</span></td>
<td>-</td>
<td>&#20219;&#24847;&#39034;&#24207;&#30340;&#19979;&#21015;&#20869;&#23481;&#30340;&#31354;&#30333;&#31526;&#20998;&#38548;&#21015;&#34920;
<ul>
<li>&#31867;&#22411;&#35828;&#26126;&#31526;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li><span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">void</span></span></span></li>
<li><a href="c-language-arithmetic_types.html">&#31639;&#26415;&#31867;&#22411;</a>&#21517;</li>
<li><a href="c-language-atomic.html">&#21407;&#23376;&#31867;&#22411;</a>&#21517;</li>
<li>&#20808;&#21069;&#30001; <a href="c-language-typedef.html">typedef</a> &#22768;&#26126;&#24341;&#20837;&#30340;&#21517;&#31216;</li>
<li><a href="c-language-struct.html"><code>struct</code></a> &#12289; <a href="c-language-union.html"><code>union</code></a> &#25110; <a href="c-language-enum.html"><code>enum</code></a> &#35828;&#26126;&#31526;</li>
</ul>
</dd>
</dl>
<ul>
<li>&#38646;&#25110;&#19968;&#20010;&#23384;&#20648;&#31867;&#35828;&#26126;&#31526;&#65306; <a href="c-language-typedef.html"><code>typedef</code></a>&#12289; <a href="c-language-storage_duration.html"><code>auto</code>&#12289; <code>register</code>&#12289; <code>static</code>&#12289; <code>extern</code>&#12289; <code>_Thread_local</code></a></li>
<li>&#38646;&#25110;&#22810;&#20010;&#31867;&#22411;&#38480;&#23450;&#31526;&#65306; <a href="c-language-const.html"><code>const</code></a> &#12289; <a href="c-language-volatile.html"><code>volatile</code></a>&#12289; <a href="c-language-restrict.html"><code>restrict</code></a>&#12289; <a href="c-language-atomic.html">_Atomic</a></li>
<li>&#65288;&#21482;&#22312;&#22768;&#26126;&#20989;&#25968;&#26102;&#65289;&#38646;&#25110;&#22810;&#20010;&#20989;&#25968;&#35828;&#26126;&#31526;&#65306; <a href="c-language-inline.html"><code>inline</code></a> &#12289; <a href="c-language-_Noreturn.html"><code>_Noreturn</code></a></li>
<li>&#38646;&#25110;&#22810;&#20010;&#23545;&#40784;&#35828;&#26126;&#31526;&#65306; <a href="c-language-_Alignas.html"><code>_Alignas</code></a></li>
</ul>
</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#22768;&#26126;&#31526;&#19982;&#21021;&#22987;&#21270;&#22120;</span></td>
<td>-</td>
<td><span class="t-spar">&#22768;&#26126;&#31526;</span> &#30340;&#36887;&#21495;&#20998;&#38548;&#21015;&#34920;&#65288;&#27599;&#20010;&#22768;&#26126;&#31526;&#25552;&#20379;&#38468;&#21152;&#31867;&#22411;&#20449;&#24687;&#21450;/&#25110;&#35201;&#22768;&#26126;&#30340;&#26631;&#35782;&#31526;&#65289;&#12290;&#22768;&#26126;&#31526;&#21487;&#20276;&#38543;<a href="c-language-initialization.html">&#21021;&#22987;&#21270;&#22120;</a>&#12290; <a href="c-language-enum.html">enum</a> &#12289; <a href="c-language-struct.html">struct</a> &#21644; <a href="c-language-union.html">union</a> &#22768;&#26126;&#21487;&#24573;&#30053; <span class="t-spar">&#22768;&#26126;&#31526;</span> &#65292;&#36825;&#31181;&#24773;&#20917;&#19979;&#23427;&#20204;&#20165;&#24341;&#20837;&#26522;&#20030;&#24120;&#37327;&#21644;/&#25110;&#26631;&#31614;&#12290;</td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#23646;&#24615;&#35828;&#26126;&#31526;&#24207;&#21015;</span></td>
<td>-</td>
<td><span class="t-mark-rev t-since-c23">(C23)</span>&#21487;&#36873;&#30340;<a href="c-language-attributes.html">&#23646;&#24615;</a>&#21015;&#34920;&#65292;&#24212;&#29992;&#21040;&#34987;&#22768;&#26126;&#30340;&#23454;&#20307;&#65292;&#25110;&#33509;&#21333;&#29420;&#20986;&#29616;&#21017;&#26500;&#25104;&#23646;&#24615;&#22768;&#26126;&#12290;</td>
</tr>
</table>
<div class="t-li1"><span class="t-li">1-2)</span> &#31616;&#21333;&#22768;&#26126;&#12290;&#24341;&#20837;&#19968;&#25110;&#22810;&#20010;&#26631;&#35782;&#31526;&#65292;&#23427;&#20204;&#20195;&#34920;&#23545;&#35937;&#12289;&#20989;&#25968;&#12289;&#32467;&#26500;&#20307;/&#32852;&#21512;&#20307;/&#26522;&#20030;&#26631;&#31614;&#12289; typedef &#25110;&#26522;&#20030;&#24120;&#37327;&#12290;</div>
<div class="t-li1"><span class="t-li">3)</span> &#23646;&#24615;&#22768;&#26126;&#12290;&#19981;&#22768;&#26126;&#20219;&#20309;&#26631;&#35782;&#31526;&#65292;&#24182;&#19988;&#33509;&#26631;&#20934;&#19981;&#25351;&#23450;&#21547;&#20041;&#21017;&#25317;&#26377;&#23454;&#29616;&#23450;&#20041;&#30340;&#21547;&#20041;&#12290;</div>
<p>&#20363;&#22914;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">int</span> a, <span class="sy2">*</span>b<span class="sy1">=</span><a href="c-types-NULL.html"><span class="kw103">NULL</span></a><span class="sy4">;</span> <span class="co1">// &ldquo; int &rdquo;&#26159;&#31867;&#22411;&#35828;&#26126;&#31526;&#65292;</span>
<span class="co1">// &ldquo; a &rdquo;&#26159;&#22768;&#26126;&#31526;</span>
<span class="co1">// &ldquo; *b &rdquo;&#26159;&#22768;&#26126;&#31526;&#32780; NULL &#26159;&#21021;&#22987;&#21270;&#22120;</span>
<span class="kw4">const</span> <span class="kw4">int</span> <span class="sy2">*</span>f<span class="br0">(</span><span class="kw4">void</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &ldquo; int &rdquo;&#26159;&#31867;&#22411;&#35828;&#26126;&#31526;</span>
<span class="co1">// &ldquo; const &rdquo;&#26159;&#31867;&#22411;&#38480;&#23450;&#31526;</span>
<span class="co1">// &ldquo; *f(void) &rdquo;&#26159;&#22768;&#26126;&#31526;</span>
<span class="kw2">enum</span> COLOR <span class="br0">{</span>RED, GREEN, BLUE<span class="br0">}</span> c<span class="sy4">;</span> <span class="co1">// &ldquo; enum COLOR {RED, GREEN, BLUE} &rdquo;&#26159;&#31867;&#22411;&#35828;&#26126;&#31526;</span>
<span class="co1">// &ldquo; c &rdquo;&#26159;&#22768;&#26126;&#31526;</span></pre></div>
</div>
<p>&#19968;&#20010;&#22768;&#26126;&#24341;&#20837;&#30340;&#27599;&#20010;&#26631;&#35782;&#31526;&#31867;&#22411;&#26159;&#36890;&#36807; <span class="t-spar">&#31867;&#22411;&#35828;&#26126;&#31526;</span> &#25152;&#25351;&#23450;&#30340;&#31867;&#22411;&#21450;&#20854; <span class="t-spar">&#22768;&#26126;&#31526;</span> &#25152;&#24212;&#29992;&#30340;&#31867;&#22411;&#20462;&#39280;&#20915;&#23450;&#30340;&#12290;</p>
<p><a href="c-language-attributes.html">&#23646;&#24615;</a><span class="t-mark-rev t-since-c23">(C23 &#36215;)</span>&#21487;&#22312; <span class="t-spar">&#35828;&#26126;&#31526;&#19982;&#38480;&#23450;&#31526;</span> &#20013;&#20986;&#29616;&#65292;&#35813;&#24773;&#20917;&#19979;&#23427;&#20204;&#24212;&#29992;&#21040;&#21069;&#23548;&#30340;&#35828;&#26126;&#31526;&#25152;&#30830;&#23450;&#30340;&#31867;&#22411;&#12290;</p>
<h3><span class="mw-headline" id=".E5.A3.B0.E6.98.8E.E7.AC.A6">&#22768;&#26126;&#31526;</span></h3>
<p>&#27599;&#20010;&#22768;&#26126;&#31526;&#26159;&#19979;&#21015;&#20043;&#19968;&#65306;</p>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#26631;&#35782;&#31526;</span> <span class="t-spar">&#23646;&#24615;&#35828;&#26126;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</span></td>
<td>(1)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><code><b>(</b></code> <span class="t-spar">&#22768;&#26126;&#31526;</span> <code><b>)</b></code></td>
<td>(2)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><code><b>*</b></code> <span class="t-spar">&#23646;&#24615;&#35828;&#26126;&#31526;&#24207;&#21015;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#38480;&#23450;&#31526;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#22768;&#26126;&#31526;</span></td>
<td>(3)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#26080;&#25351;&#38024;&#22768;&#26126;&#31526;</span> <code><b>[</b></code> <code><b>static</b></code><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#38480;&#23450;&#31526;</span><span class="t-mark">(&#21487;&#36873;)</span> <span class="t-spar">&#34920;&#36798;&#24335;</span> <code><b>]</b></code>
<p><span class="t-spar">&#26080;&#25351;&#38024;&#22768;&#26126;&#31526;</span> <code><b>[</b></code> <span class="t-spar">&#38480;&#23450;&#31526;</span><span class="t-mark">(&#21487;&#36873;)</span> <code><b>*</b></code> <code><b>]</b></code></p>
</td>
<td>(4)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><span class="t-spar">&#26080;&#25351;&#38024;&#22768;&#26126;&#31526;</span> <code><b>(</b></code> <span class="t-spar">&#24418;&#21442;&#25110;&#26631;&#35782;&#31526;</span> <code><b>)</b></code></td>
<td>(5)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<div class="t-li1"><span class="t-li">1)</span> &#27492;&#22768;&#26126;&#31526;&#24341;&#20837;&#30340;&#26631;&#35782;&#31526;&#12290;</div>
<div class="t-li1"><span class="t-li">2)</span> &#20219;&#20309;&#21487;&#20197;&#25918;&#20837;&#25324;&#21495;&#20013;&#30340;&#22768;&#26126;&#31526;&#65307;&#24341;&#20837;&#25351;&#21521;&#25968;&#32452;&#25110;&#25351;&#21521;&#20989;&#25968;&#25351;&#38024;&#26102;&#35201;&#27714;&#36825;&#20040;&#20570;&#12290;</div>
<div class="t-li1"><span class="t-li">3)</span> <a href="c-language-pointer.html">&#25351;&#38024;&#22768;&#26126;&#31526;</a>&#65306;&#22768;&#26126; <span class="t-c"><span class="mw-geshi c source-c">S <span class="sy2">*</span> cvr D</span></span> &#22768;&#26126; <code>D</code> &#20026; <span class="t-spar">cvr</span> &#38480;&#23450;&#25351;&#38024;&#65292;&#25351;&#21521; <code>S</code> &#25152;&#30830;&#23450;&#30340;&#31867;&#22411;&#12290;</div>
<div class="t-li1"><span class="t-li">4)</span> <a href="c-language-array.html">&#25968;&#32452;&#22768;&#26126;&#31526;</a>&#65306;&#22768;&#26126; <span class="t-c"><span class="mw-geshi c source-c">S D<span class="br0">[</span>N<span class="br0">]</span></span></span> &#22768;&#26126; <code>D</code> &#20026;&#26377; <code>N</code> &#20010; <code>S</code> &#25152;&#30830;&#23450;&#31867;&#22411;&#23545;&#35937;&#30340;&#25968;&#32452;&#12290; <span class="t-spar">&#26080;&#25351;&#38024;&#22768;&#26126;&#31526;</span> &#26159;&#26080;&#25324;&#21495;&#25351;&#38024;&#22768;&#26126;&#31526;&#20197;&#22806;&#30340;&#20854;&#20182;&#20219;&#20309;&#22768;&#26126;&#31526;&#12290;</div>
<div class="t-li1"><span class="t-li">5)</span> <a href="c-language-function_declaration.html">&#20989;&#25968;&#22768;&#26126;&#31526;</a>&#65306;&#22768;&#26126; <span class="t-c"><span class="mw-geshi c source-c">S D<span class="br0">(</span>params<span class="br0">)</span></span></span> &#22768;&#26126; <code>D</code> &#20026;&#25509;&#25910;&#21442;&#25968; <code>params</code> &#24182;&#36820;&#22238; <code>S</code> &#30340;&#20989;&#25968;&#12290; <span class="t-spar">&#26080;&#25351;&#38024;&#22768;&#26126;&#31526;</span> &#26159;&#26080;&#25324;&#21495;&#25351;&#38024;&#22768;&#26126;&#31526;&#20197;&#22806;&#30340;&#20854;&#20182;&#20219;&#20309;&#22768;&#26126;&#31526;&#12290;</div>
<p>&#27492;&#35821;&#27861;&#32972;&#21518;&#30340;&#21407;&#22240;&#65292;&#26159;&#24403;&#22768;&#26126;&#31526;&#25152;&#22768;&#26126;&#30340;&#26631;&#35782;&#31526;&#20197;&#19982;&#22768;&#26126;&#31526;&#30456;&#21516;&#30340;&#24418;&#24335;&#20986;&#29616;&#22312;&#34920;&#36798;&#24335;&#20013;&#26102;&#65292;&#23427;&#20250;&#25317;&#26377;&#31867;&#22411;&#35828;&#26126;&#31526;&#24207;&#21015;&#25152;&#25351;&#23450;&#30340;&#31867;&#22411;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw1">struct</span> C <span class="br0">{</span>
<span class="kw4">int</span> member<span class="sy4">;</span> <span class="co1">// &ldquo; int &rdquo;&#26159;&#31867;&#22411;&#35828;&#26126;&#31526;</span>
<span class="co1">// &ldquo; member &rdquo;&#26159;&#22768;&#26126;&#31526;</span>
<span class="br0">}</span> obj, <span class="sy2">*</span>pObj <span class="sy1">=</span> <span class="sy3">&amp;</span>obj<span class="sy4">;</span>
<span class="co1">// &ldquo; struct C { int member; } &rdquo;&#26159;&#31867;&#22411;&#35828;&#26126;&#31526;</span>
<span class="co1">// &#22768;&#26126;&#31526;&ldquo; obj &rdquo;&#23450;&#20041; struct C &#31867;&#22411;&#30340;&#23545;&#35937;</span>
<span class="co1">// &#22768;&#26126;&#31526;&ldquo; *pObj &rdquo;&#22768;&#26126;&#25351;&#21521; struct C &#30340;&#25351;&#38024;&#65292;</span>
<span class="co1">// &#21021;&#22987;&#21270;&#22120;&ldquo; = &amp;obj &rdquo;&#25552;&#20379;&#35813;&#25351;&#38024;&#30340;&#21021;&#20540;</span>
<span class="kw4">int</span> a <span class="sy1">=</span> <span class="nu0">1</span>, <span class="sy2">*</span>p <span class="sy1">=</span> <a href="c-types-NULL.html"><span class="kw103">NULL</span></a>, f<span class="br0">(</span><span class="kw4">void</span><span class="br0">)</span>, <span class="br0">(</span><span class="sy2">*</span>pf<span class="br0">)</span><span class="br0">(</span><span class="kw4">double</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#31867;&#22411;&#35828;&#26126;&#31526;&#26159;&ldquo; int &rdquo;</span>
<span class="co1">// &#22768;&#26126;&#31526;&ldquo; a &rdquo;&#23450;&#20041;&#19968;&#20010; int &#31867;&#22411;&#23545;&#35937;</span>
<span class="co1">// &#21021;&#22987;&#21270;&#22120;&ldquo;=1&rdquo;&#25552;&#20379;&#20854;&#21021;&#20540;</span>
<span class="co1">// &#22768;&#26126;&#31526;&ldquo; *p &rdquo;&#23450;&#20041;&#19968;&#20010;&#25351;&#21521; int &#25351;&#38024;&#31867;&#22411;&#30340;&#23545;&#35937;</span>
<span class="co1">// &#21021;&#22987;&#21270;&#22120;&ldquo; =NULL &rdquo;&#25552;&#20379;&#20854;&#21021;&#20540;</span>
<span class="co1">// &#22768;&#26126;&#31526;&ldquo; f(void) &rdquo;&#22768;&#26126;&#25509;&#21463; void &#24182;&#36820;&#22238; int &#30340;&#20989;&#25968;</span>
<span class="co1">// &#22768;&#26126;&#31526;&ldquo; (*pf)(double) &rdquo;&#23450;&#20041;&#19968;&#20010;&#25351;&#21521;</span>
<span class="co1">// &#25509;&#21463; double &#24182;&#36820;&#22238; int &#30340;&#20989;&#25968;&#30340;&#25351;&#38024;&#31867;&#22411;&#23545;&#35937;</span>
<span class="kw4">int</span> <span class="br0">(</span><span class="sy2">*</span><span class="br0">(</span><span class="sy2">*</span>foo<span class="br0">)</span><span class="br0">(</span><span class="kw4">double</span><span class="br0">)</span><span class="br0">)</span><span class="br0">[</span><span class="nu0">3</span><span class="br0">]</span> <span class="sy1">=</span> <a href="c-types-NULL.html"><span class="kw103">NULL</span></a><span class="sy4">;</span>
<span class="co1">// &#31867;&#22411;&#35828;&#26126;&#31526;&#26159;&ldquo;int&rdquo;</span>
<span class="co1">// 1. &#22768;&#26126;&#31526;&ldquo; (*(*foo)(double))[3] &rdquo;&#26159;&#25968;&#32452;&#22768;&#26126;&#31526;&#65306;</span>
<span class="co1">// &#25152;&#22768;&#26126;&#31867;&#22411;&#26159;&ldquo; 3 &#20010; int &#30340;&#25968;&#32452;&#30340; /&#23884;&#22871;&#22768;&#26126;&#31526;/ &rdquo;</span>
<span class="co1">// 2. &#23884;&#22871;&#22768;&#26126;&#31526;&#26159;&ldquo; *(*foo)(double)) &rdquo;&#65292;&#26159;&#25351;&#38024;&#22768;&#26126;&#31526;</span>
<span class="co1">// &#25152;&#22768;&#26126;&#31867;&#22411;&#26159;&ldquo; /&#23884;&#22871;&#22768;&#26126;&#31526;/ &#25351;&#21521; 3 &#20010; int &#30340;&#25968;&#32452;&#30340;&#25351;&#38024;&rdquo;</span>
<span class="co1">// 3. &#23884;&#22871;&#22768;&#26126;&#31526;&#26159;&ldquo; (*foo)(double) &rdquo;&#65292;&#26159;&#19968;&#20010;&#20989;&#25968;&#22768;&#26126;&#31526;</span>
<span class="co1">// &#25152;&#22768;&#26126;&#31867;&#22411;&#26159;&ldquo; /&#23884;&#22871;&#22768;&#26126;&#31526;/ &#25509;&#21463; double &#24182;&#36820;&#22238;&#25351;&#21521; 3 &#20010; int &#30340;&#25968;&#32452;&#30340;&#25351;&#38024;&#30340;&#20989;&#25968;&rdquo;</span>
<span class="co1">// 4. &#23884;&#22871;&#22768;&#26126;&#31526;&#26159;&ldquo; (*foo) &rdquo;&#65292;&#26159;&#19968;&#20010;&#65288;&#26377;&#25324;&#21495;&#65292;&#20989;&#25968;&#22768;&#26126;&#31526;&#25152;&#35201;&#27714;&#65289;&#25351;&#38024;&#22768;&#26126;&#31526;&#12290;</span>
<span class="co1">// &#25152;&#22768;&#26126;&#31867;&#22411;&#26159;&ldquo; /&#23884;&#22871;&#22768;&#26126;&#31526;/ &#25351;&#21521;&#25509;&#21463; double &#24182;&#36820;&#22238;&#25351;&#21521; 3 &#20010; int &#30340;&#25968;&#32452;&#30340;&#25351;&#38024;&#30340;&#20989;&#25968;&#30340;&#25351;&#38024;&rdquo;</span>
<span class="co1">// 5. &#23884;&#22871;&#22768;&#26126;&#31526;&#26159;&ldquo; foo &rdquo;&#65292;&#26159;&#19968;&#20010;&#26631;&#35782;&#31526;&#12290;</span>
<span class="co1">// &#35813;&#22768;&#26126;&#24341;&#20837;&#19968;&#20010;&#26631;&#35782;&#31526;&ldquo; foo &rdquo;&#65292;&#20197;&#25351;&#20195;&#19968;&#20010;&#23545;&#35937;&#65292;&#20854;&#31867;&#22411;&#20026;</span>
<span class="co1">// &ldquo;&#25351;&#21521;&#25509;&#21463; double &#24182;&#36820;&#22238;&#25351;&#21521; 3 &#20010; int &#30340;&#25968;&#32452;&#30340;&#25351;&#38024;&#30340;&#20989;&#25968;&#30340;&#25351;&#38024;&rdquo;</span>
<span class="co1">// &#21021;&#22987;&#21270;&#22120;&ldquo; = NULL &rdquo;&#25552;&#20379;&#27492;&#25351;&#38024;&#30340;&#21021;&#20540;&#12290;</span>
<span class="co1">// &#33509;&#22312;&#29992;&#20110;&#22768;&#26126;&#31526;&#24418;&#24335;&#30340;&#34920;&#36798;&#24335;&#20351;&#29992;&ldquo;foo&rdquo;&#65292;&#21017;&#34920;&#36798;&#24335;&#31867;&#22411;&#23558;&#26159;int&#12290;</span>
<span class="kw4">int</span> x <span class="sy1">=</span> <span class="br0">(</span><span class="sy2">*</span><span class="br0">(</span><span class="sy2">*</span>foo<span class="br0">)</span><span class="br0">(</span><span class="nu16">1.2</span><span class="br0">)</span><span class="br0">)</span><span class="br0">[</span><span class="nu0">0</span><span class="br0">]</span><span class="sy4">;</span></pre></div>
</div>
<p>&#27599;&#20010;&#19981;&#23646;&#20110;&#20854;&#20182;&#22768;&#26126;&#31526;&#19968;&#37096;&#20998;&#30340;&#22768;&#26126;&#31526;&#32467;&#23614;&#26159;&#19968;&#20010;<a href="c-language-eval_order.html">&#39034;&#24207;&#28857;</a>&#12290;</p>
<p>&#25152;&#26377;&#24773;&#20917;&#19979;&#65292; <span class="t-spar">&#23646;&#24615;&#35828;&#26126;&#31526;&#24207;&#21015;</span> &#22343;&#20026;&#21487;&#36873;&#30340;<a href="c-language-attributes.html">&#23646;&#24615;</a><span class="t-mark-rev t-since-c23">(C23 &#36215;)</span>&#24207;&#21015;&#12290;&#31435;&#21363;&#20986;&#29616;&#22312;&#26631;&#35782;&#31526;&#21518;&#26102;&#65292;&#23427;&#24212;&#29992;&#21040;&#34987;&#22768;&#26126;&#30340;&#23545;&#35937;&#25110;&#20989;&#25968;&#12290;</p>
<h3><span class="mw-headline" id=".E5.AE.9A.E4.B9.89">&#23450;&#20041;</span></h3>
<p><i>&#23450;&#20041;</i>&#26159;&#19968;&#20010;&#25552;&#20379;&#25152;&#26377;&#20851;&#20110;&#20854;&#25152;&#22768;&#26126;&#26631;&#35782;&#31526;&#20449;&#24687;&#30340;&#22768;&#26126;&#12290;</p>
<p>&#27599;&#20010; <a href="c-language-enum.html">enum</a> &#25110; <a href="c-language-typedef.html">typedef</a> &#22768;&#26126;&#37117;&#26159;&#23450;&#20041;&#12290;</p>
<p>&#23545;&#20110;&#20989;&#25968;&#65292;&#21253;&#21547;&#20989;&#25968;&#20307;&#30340;&#22768;&#26126;&#21363;&#26159;<a href="c-language-function_definition.html">&#20989;&#25968;&#23450;&#20041;</a>&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw4">int</span> foo<span class="br0">(</span><span class="kw4">double</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#22768;&#26126;</span>
<span class="kw4">int</span> foo<span class="br0">(</span><span class="kw4">double</span> x<span class="br0">)</span><span class="br0">{</span> <span class="kw1">return</span> x<span class="sy4">;</span> <span class="br0">}</span> <span class="co1">// &#23450;&#20041;</span></pre></div>
</div>
<p>&#23545;&#20110;&#23545;&#35937;&#65292;&#20998;&#37197;&#20854;&#23384;&#20648;&#30340;&#22768;&#26126;&#65288;<a href="c-language-storage_duration.html">&#33258;&#21160;&#25110;&#38745;&#24577;</a>&#65292;&#20294;&#12289;&#38750; extern &#65289;&#21363;&#26159;&#23450;&#20041;&#65292;&#32780;&#19968;&#20010;&#19981;&#20998;&#37197;&#23384;&#20648;&#30340;&#22768;&#26126;&#65288;<a href="c-language-extern.html">&#22806;&#37096;&#22768;&#26126;</a>&#65289;&#19981;&#26159;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw2">extern</span> <span class="kw4">int</span> n<span class="sy4">;</span> <span class="co1">// &#22768;&#26126;</span>
<span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">10</span><span class="sy4">;</span> <span class="co1">// &#23450;&#20041;</span></pre></div>
</div>
<p>&#23545;&#20110;<a href="c-language-struct.html">&#32467;&#26500;&#20307;</a>&#21644;<a href="c-language-union.html">&#32852;&#21512;&#20307;</a>&#65292;&#25351;&#23450;&#20854;&#25104;&#21592;&#21015;&#34920;&#30340;&#22768;&#26126;&#26159;&#23450;&#20041;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw1">struct</span> X<span class="sy4">;</span> <span class="co1">// &#22768;&#26126;</span>
<span class="kw1">struct</span> X <span class="br0">{</span> <span class="kw4">int</span> n<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span> <span class="co1">// &#23450;&#20041;</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E9.87.8D.E5.A3.B0.E6.98.8E">&#37325;&#22768;&#26126;</span></h3>
<p>&#33509;&#21478;&#19968;&#20010;&#21516;&#19968;&#26631;&#35782;&#31526;&#30340;&#22768;&#26126;&#22312;&#21516;&#19968;<a href="c-language-scope.html">&#20316;&#29992;&#22495;</a>&#30340;&#36739;&#26089;&#37096;&#20998;&#20986;&#29616;&#65292;&#21017;&#22768;&#26126;&#19981;&#21487;&#20877;&#24341;&#20837;&#21516;&#19968;&#26631;&#35782;&#31526;&#65292;&#38500;&#38750;</p>
<ul>
<li><a href="c-language-storage_duration.html">&#26377;&#38142;&#25509;</a>&#23545;&#35937;&#65288;&#22806;&#37096;&#25110;&#20869;&#37096;&#65289;&#30340;&#22768;&#26126;&#21487;&#20197;&#37325;&#22797;&#65306;</li>
</ul>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw2">extern</span> <span class="kw4">int</span> x<span class="sy4">;</span>
<span class="kw4">int</span> x <span class="sy1">=</span> <span class="nu0">10</span><span class="sy4">;</span> <span class="co1">// OK</span>
<span class="kw2">extern</span> <span class="kw4">int</span> x<span class="sy4">;</span> <span class="co1">// OK</span>
<span class="kw4">static</span> <span class="kw4">int</span> n<span class="sy4">;</span>
<span class="kw4">static</span> <span class="kw4">int</span> n <span class="sy1">=</span> <span class="nu0">10</span><span class="sy4">;</span> <span class="co1">// OK</span>
<span class="kw4">static</span> <span class="kw4">int</span> n<span class="sy4">;</span> <span class="co1">// OK</span></pre></div>
</div>
<ul>
<li>&#38750; VLA <a href="c-language-typedef.html">typedef</a> &#21487;&#20197;&#20219;&#24847;&#37325;&#22797;&#65292;&#21482;&#35201;&#23427;&#25351;&#21517;&#21516;&#19968;&#31867;&#22411;&#65306;</li>
</ul>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw1">typedef</span> <span class="kw4">int</span> int_t<span class="sy4">;</span>
<span class="kw1">typedef</span> <span class="kw4">int</span> int_t<span class="sy4">;</span> <span class="co1">// OK</span></pre></div>
</div>
<ul>
<li><a href="c-language-struct.html">struct</a> &#21644; <a href="c-language-union.html">union</a> &#22768;&#26126;&#21487;&#20197;&#37325;&#22797;&#65306;</li>
</ul>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="c source-c">
<pre class="de1"><span class="kw1">struct</span> X<span class="sy4">;</span>
<span class="kw1">struct</span> X <span class="br0">{</span> <span class="kw4">int</span> n<span class="sy4">;</span> <span class="br0">}</span><span class="sy4">;</span>
<span class="kw1">struct</span> X<span class="sy4">;</span></pre></div>
</div>
<p>&#36825;&#20123;&#35268;&#21017;&#20250;&#31616;&#21270;&#22836;&#25991;&#20214;&#30340;&#20351;&#29992;&#12290;</p>
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3">&#27880;&#35299;</span></h3>
<table class="t-rev-begin">
<tr class="t-rev t-until-c99">
<td>
<p>C89 &#20013;&#65292;&#20219;&#20309;<a href="c-language-statements.html#.E5.A4.8D.E5.90.88.E8.AF.AD.E5.8F.A5">&#22797;&#21512;&#35821;&#21477;</a>&#65288;&#22359;&#20316;&#29992;&#22495;&#65289;&#20013;&#30340;&#22768;&#26126;&#24517;&#39035;&#20986;&#29616;&#22312;&#22359;&#30340;&#24320;&#22836;&#65292;&#22312;&#20219;&#20309;<a href="c-language-statements.html">&#35821;&#21477;</a>&#20043;&#21069;&#12290;</p>
<p>&#32780;&#19988;&#65292;C89 &#20013;&#36820;&#22238; <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">int</span></span></span> &#30340;&#20989;&#25968;&#21487;&#20197;&#38544;&#24335;&#22320;&#29992;<a href="c-language-operator_other.html#.E5.87.BD.E6.95.B0.E8.B0.83.E7.94.A8">&#20989;&#25968;&#35843;&#29992;&#36816;&#31639;&#31526;</a>&#22768;&#26126;&#65292;&#19988;&#20351;&#29992;&#26087;&#24335;<a href="c-language-function_definition.html">&#20989;&#25968;&#23450;&#20041;</a>&#26102;&#65292; <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">int</span></span></span> &#31867;&#22411;&#30340;&#20989;&#25968;&#21442;&#25968;&#19981;&#24517;&#22768;&#26126;&#12290;</p>
</td>
<td><span class="t-mark-rev t-until-c99">(C99 &#21069;)</span></td>
</tr>
</table>
<p>&#31105;&#27490;&#31354;&#22768;&#26126;&#31526;&#65307;&#31616;&#21333;&#22768;&#26126;&#24517;&#39035;&#25317;&#26377;&#33267;&#23569;&#19968;&#20010;&#22768;&#26126;&#31526;&#65292;&#25110;&#22768;&#26126;&#33267;&#23569;&#19968;&#20010; struct/union/enum &#26631;&#31614;&#65292;&#25110;&#24341;&#20837;&#33267;&#23569;&#19968;&#20010;&#26522;&#20030;&#24120;&#37327;&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-c99">
<td>
<p>&#33509;&#22768;&#26126;&#31526;&#30340;&#20219;&#19968;&#37096;&#20998;&#26159;<a href="c-language-array.html">&#38750;&#24120;&#37327;&#38271;&#24230;&#25968;&#32452;</a>&#65288; VLA &#65289;&#22768;&#26126;&#31526;&#65292;&#21017;&#25972;&#20010;&#22768;&#26126;&#31526;&#30340;&#31867;&#22411;&#34987;&#31216;&#20316;&ldquo;&#21487;&#21464;&#20462;&#25913;&#31867;&#22411;&rdquo;&#12290;&#26681;&#25454;&#21487;&#21464;&#20462;&#25913;&#31867;&#22411;&#23450;&#20041;&#30340;&#31867;&#22411;&#21516;&#26679;&#26159;&#21487;&#21464;&#20462;&#25913;&#30340;&#65288; VM &#65289;&#12290;</p>
<p>&#20219;&#20309;&#21487;&#21464;&#20462;&#25913;&#31867;&#22411;&#22768;&#26126;&#21482;&#20801;&#35768;&#20986;&#29616;&#22312;<a href="c-language-scope.html">&#22359;&#20316;&#29992;&#22495;</a>&#25110;&#20989;&#25968;&#21407;&#22411;&#20316;&#29992;&#22495;&#65292;&#32780;&#19988;&#19981;&#33021;&#26159;&#20219;&#20309;&#32467;&#26500;&#20307;&#25110;&#32852;&#21512;&#20307;&#30340;&#25104;&#21592;&#12290;&#23613;&#31649; VLA &#21482;&#33021;&#25317;&#26377;&#33258;&#21160;&#25110;&#20998;&#37197;<a href="c-language-storage_duration.html">&#23384;&#20648;&#26399;</a>&#65292;&#19968;&#20010; VM &#31867;&#22411;&#65292;&#20363;&#22914;&#25351;&#21521; VLA &#30340;&#25351;&#38024;&#20063;&#21487;&#20197;&#26377;&#38745;&#24577;&#23384;&#20648;&#12290;&#20851;&#20110; VM &#31867;&#22411;&#26377;&#20854;&#20182;&#20351;&#29992;&#38480;&#21046;&#65292;&#35265; <a href="c-language-goto.html">goto</a>&#12289; <a href="c-language-switch.html">switch</a>&#12289; <span class="t-lc"><a href="c-program-longjmp.html">longjmp</a></span> &#12290;</p>
</td>
<td><span class="t-mark-rev t-since-c99">(C99 &#36215;)</span></td>
</tr>
</table>
<table class="t-rev-begin">
<tr class="t-rev t-since-c11">
<td>
<p><a href="c-language-_Static_assert.html">_Static_assert</a> &#20174; C &#25991;&#27861;&#30340;&#35270;&#35282;&#26469;&#30475;&#65292;&#34987;&#35748;&#20026;&#26159;&#22768;&#26126;&#65288;&#25925;&#23427;&#20204;&#21487;&#20197;&#20986;&#29616;&#22312;&#20219;&#20309;&#22768;&#26126;&#33021;&#20986;&#29616;&#30340;&#22320;&#26041;&#65289;&#65292;&#20294;&#23427;&#20204;&#19981;&#20250;&#24341;&#20837;&#20219;&#20309;&#26032;&#30340;&#26631;&#35782;&#31526;&#65292;&#19988;&#19981;&#36981;&#24490;&#22768;&#26126;&#35821;&#27861;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-c11">(C11 &#36215;)</span></td>
</tr>
</table>
<table class="t-rev-begin">
<tr class="t-rev t-since-c23">
<td>
<p><a href="c-language-attributes.html">&#23646;&#24615;</a>&#22768;&#26126;&#20134;&#34987;&#35748;&#20026;&#26159;&#22768;&#26126;&#65288;&#25925;&#23427;&#20204;&#21487;&#20197;&#20986;&#29616;&#22312;&#20219;&#20309;&#22768;&#26126;&#33021;&#20986;&#29616;&#30340;&#22320;&#26041;&#65289;&#65292;&#20294;&#23427;&#20204;&#19981;&#20250;&#24341;&#20837;&#20219;&#20309;&#26032;&#30340;&#26631;&#35782;&#31526;&#12290;&#21333;&#20010;&#26080; <span class="t-spar">&#23646;&#24615;&#35828;&#26126;&#31526;&#24207;&#21015;</span> &#30340; <code><b>;</b></code> &#19981;&#26159;&#23646;&#24615;&#22768;&#26126;&#65292;&#32780;&#26159;&#35821;&#21477;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-c23">(C23 &#36215;)</span></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.BC.95.E7.94.A8">&#24341;&#29992;</span></h3>
<div class="t-ref-std-17">
<ul>
<li>C17 &#26631;&#20934;&#65288;ISO/IEC 9899:2018&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>6.7 Declarations (p: 78-105)</li>
</ul>
</dd>
</dl>
</div>
<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.7 Declarations (p: 108-145)</li>
</ul>
</dd>
</dl>
</div>
<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.7 Declarations (p: 97-130)</li>
</ul>
</dd>
</dl>
</div>
<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.5 Declarations</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>