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

89 lines
9.4 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>&#21487;&#20998;&#26512;&#24615;</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_analyzability skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#21487;&#20998;&#26512;&#24615;</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>C &#35821;&#35328;&#30340;&#27492;&#25193;&#23637;&#38480;&#21046;&#26576;&#20123;&#26410;&#23450;&#20041;&#34892;&#20026;&#28508;&#22312;&#25191;&#34892;&#32467;&#26524;&#65292;&#36825;&#20250;&#25552;&#21319;&#31243;&#24207;&#30340;&#38745;&#24577;&#35821;&#27861;&#20998;&#26512;&#25928;&#26524;&#12290;&#21482;&#26377;&#32534;&#35793;&#22120;&#23450;&#20041;&#20102;<a href="c-preprocessor-replace.html">&#39044;&#23450;&#20041;&#23439;&#24120;&#37327;</a> <span class="t-c"><span class="mw-geshi c source-c">__STDC_ANALYZABLE__</span></span> <span class="t-mark-rev t-since-c11">(C11)</span>&#65292;&#21487;&#20998;&#26512;&#24615; (analyzability) &#25165;&#20445;&#35777;&#21487;&#29992;&#12290;</p>
<p>&#33509;&#32534;&#35793;&#22120;&#25903;&#25345;&#21487;&#20998;&#26512;&#24615;&#65292;&#20219;&#20309;&#34892;&#20026;&#26410;&#23450;&#20041;&#30340;&#35821;&#35328;&#25110;&#24211;&#26500;&#36896;&#21487;&#20197;&#36827;&#19968;&#27493;&#20998;&#20026;<i>&#20005;&#26684;</i>&#26410;&#23450;&#20041;&#34892;&#20026;&#21644;<i>&#26377;&#30028;</i>&#26410;&#23450;&#20041;&#34892;&#20026;&#65292;&#19988;&#25152;&#26377;&#26377;&#30028; UB &#30340;&#24773;&#20917;&#20197;&#19979;&#25991;&#26041;&#24335;&#38480;&#21046;&#12290;</p>
<h3><span class="mw-headline" id=".E4.B8.A5.E6.A0.BC.E6.9C.AA.E5.AE.9A.E4.B9.89.E8.A1.8C.E4.B8.BA">&#20005;&#26684;&#26410;&#23450;&#20041;&#34892;&#20026;</span></h3>
<p>&#20005;&#26684; UB &#26159;&#21487;&#33021;&#22312;&#20219;&#20309;&#23545;&#35937;&#20043;&#22806;&#36827;&#34892;&#20869;&#23384;&#20889;&#20837;&#25110;&#26131;&#22833;&#20869;&#23384;&#35835;&#30340;&#26410;&#23450;&#20041;&#34892;&#20026;&#12290;&#25317;&#26377;&#20005;&#26684;&#26410;&#23450;&#20041;&#34892;&#20026;&#30340;&#31243;&#24207;&#21487;&#33021;&#23384;&#22312;&#23433;&#20840;&#28431;&#27934;&#12290;</p>
<p>&#20165;&#19979;&#21015;&#26410;&#23450;&#20041;&#34892;&#20026;&#26159;&#20005;&#26684;&#30340;&#65306;</p>
<ul>
<li>&#22312;<a href="c-language-lifetime.html">&#29983;&#23384;&#26399;</a>&#22806;&#35775;&#38382;&#23545;&#35937;&#65288;&#20363;&#22914;&#65306;&#36890;&#36807;&#24748;&#22402;&#25351;&#38024;&#65289;</li>
<li>&#20889;&#20837;&#22768;&#26126;&#20026;&#19981;<a href="c-language-types.html#.E5.85.BC.E5.AE.B9.E7.B1.BB.E5.9E.8B">&#20860;&#23481;&#31867;&#22411;</a>&#30340;&#23545;&#35937;</li>
<li>&#36890;&#36807;&#19982;&#25152;&#25351;&#21521;&#31867;&#22411;&#19981;<a href="c-language-types.html#.E5.85.BC.E5.AE.B9.E7.B1.BB.E5.9E.8B">&#20860;&#23481;</a>&#30340;&#25351;&#38024;&#35843;&#29992;&#20989;&#25968;</li>
<li>&#27714;&#20540;<a href="c-language-value_category.html">&#24038;&#20540;&#34920;&#36798;&#24335;</a>&#65292;&#20294;&#19981;&#25351;&#20195;&#19968;&#20010;&#23545;&#35937;</li>
<li>&#35797;&#22270;&#20462;&#25913;<a href="c-language-string_literal.html">&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;</a></li>
<li><a href="c-language-operator_member_access.html">&#35299;&#24341;&#29992;</a>&#38750;&#27861;&#65288;&#31354;&#30340;&#12289;&#19981;&#30830;&#23450;&#30340;&#31561;&#65289;&#25110;<a href="c-language-operator_arithmetic.html">&#23614;&#21518;</a>&#25351;&#38024;</li>
<li>&#36890;&#36807;&#38750; const &#25351;&#38024;&#20462;&#25913; <a href="c-language-const.html">const &#23545;&#35937;</a></li>
<li>&#20197;&#38750;&#27861;&#21442;&#25968;&#35843;&#29992;&#26631;&#20934;&#24211;&#20989;&#25968;&#25110;&#26631;&#20934;&#24211;&#23439;</li>
<li>&#20197;&#19981;&#26399;&#24453;&#30340;&#31867;&#22411;&#35843;&#29992;&#21464;&#21442;&#25968;&#30340;&#26631;&#20934;&#24211;&#20989;&#25968;&#65288;&#20363;&#22914;&#65306;&#20197;&#19981;&#21305;&#37197;&#20854;&#36716;&#25442;&#25351;&#23450;&#31526;&#30340;&#21442;&#25968;&#35843;&#29992; <span class="t-lc"><a href="c-io-fprintf.html">printf</a></span> &#65289;</li>
<li><span class="t-lc"><a href="c-program-setjmp.html">setjmp</a></span> &#19981;&#22312;&#35843;&#29992;&#26041;&#20316;&#29992;&#22495;&#12289;&#36328;&#32447;&#31243;&#25110;&#22312;&#21160;&#24577;&#20462;&#25913;&#65288; VM &#65289;&#31867;&#22411;&#30340;&#20316;&#29992;&#22495;&#20013; <span class="t-lc"><a href="c-program-longjmp.html">longjmp</a></span></li>
<li>&#20351;&#29992; <span class="t-lc"><a href="c-memory-free.html">free</a></span> &#25110; <span class="t-lc"><a href="c-memory-realloc.html">realloc</a></span> &#35299;&#20998;&#37197;&#30340;&#25351;&#38024;</li>
<li><a href="c-string-byte.html">&#23383;&#31526;&#20018;</a>&#25110;<a href="c-string-wide.html">&#23485;&#23383;&#31526;&#20018;</a>&#20989;&#25968;&#35775;&#38382;&#36793;&#30028;&#22806;&#30340;&#25968;&#32452;</li>
</ul>
<h3><span class="mw-headline" id=".E6.9C.89.E7.95.8C.E6.9C.AA.E5.AE.9A.E4.B9.89.E8.A1.8C.E4.B8.BA">&#26377;&#30028;&#26410;&#23450;&#20041;&#34892;&#20026;</span></h3>
<p>&#26377;&#30028; UB &#26159;&#19981;&#33021;&#36827;&#34892;&#38750;&#27861;&#20869;&#23384;&#20889;&#12289;&#35835;&#30340;&#26410;&#23450;&#20041;&#34892;&#20026;&#65292;&#23613;&#31649;&#20869;&#23384;&#21487;&#33021;&#38519;&#38449;&#12289;&#34920;&#31034;&#25110;&#23384;&#20648;&#19981;&#30830;&#23450;&#20540;&#12290;</p>
<ul>
<li>&#20219;&#20309;&#19981;&#21015;&#20316;&#20005;&#26684;&#30340;&#26410;&#23450;&#20041;&#34892;&#20026;&#26159;&#26377;&#30028;&#30340;&#65292;&#21253;&#25324;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>&#22810;&#32447;&#31243;&#25968;&#25454;&#31454;&#20105;</li>
<li>&#20351;&#29992;&#25317;&#26377;&#33258;&#21160;&#23384;&#20648;&#26399;&#30340;<a href="c-language-initialization.html">&#19981;&#30830;&#23450;&#20540;</a></li>
<li>&#36829;&#35268;&#20351;&#29992;<a href="c-language-object.html#.E4.B8.A5.E6.A0.BC.E5.88.AB.E5.90.8D.E4.BD.BF.E7.94.A8">&#20005;&#26684;&#21035;&#21517;</a></li>
<li>&#35775;&#38382;<a href="c-language-object.html#.E5.AF.B9.E9.BD.90">&#38169;&#35823;&#23545;&#40784;</a>&#30340;&#23545;&#35937;</li>
<li>&#26377;&#31526;&#21495;&#25972;&#25968;&#28322;&#20986;</li>
<li>&#22312;<a href="c-language-eval_order.html">&#21103;&#25928;&#29992;&#39034;&#24207;&#19981;&#30830;&#23450;</a>&#26102;&#65292;&#22810;&#27425;&#20462;&#25913;&#25110;&#22810;&#27425;&#20462;&#25913;&#24182;&#35835;&#21462;&#21516;&#19968;&#20010;&#26631;&#37327;</li>
<li>&#28014;&#28857;&#21040;&#25972;&#25968;&#25110;&#25351;&#38024;&#21040;&#25972;&#25968;<a href="c-language-conversion.html">&#36716;&#25442;</a>&#28322;&#20986;</li>
<li>&#20197;&#36127;&#20540;&#25110;&#36807;&#22823;&#20301;&#25968;<a href="c-language-operator_arithmetic.html">&#36880;&#20301;&#24038;&#31227;</a></li>
<li>&#38500;&#20197;&#38646;&#30340;<a href="c-language-operator_arithmetic.html">&#25972;&#38500;</a></li>
<li>&#20351;&#29992; void &#34920;&#36798;&#24335;</li>
<li>&#30452;&#25509;<a href="c-language-operator_assignment.html">&#36171;&#20540;</a>&#25110; <span class="t-lc"><a href="c-string-byte-memcpy.html">memcpy</a></span> &#21487;&#33021;&#20869;&#23384;&#37325;&#21472;&#30340;&#23545;&#35937;</li>
<li>&#36829;&#35268;&#20351;&#29992; <a href="c-language-restrict.html">restrict</a></li>
<li>&#31561;&#31561;&hellip;&hellip;&#25152;&#26377;&#19981;&#22312;&#20005;&#26684;&#21015;&#34920;&#20013;&#30340;&#26410;&#23450;&#20041;&#34892;&#20026;&#12290;</li>
</ul>
</dd>
</dl>
<h3><span class="mw-headline" id=".E6.B3.A8.E6.84.8F">&#27880;&#24847;</span></h3>
<p>&#26377;&#30028;&#26410;&#23450;&#20041;&#34892;&#20026;&#31105;&#29992;&#26576;&#20123;&#20248;&#21270;&#65306;&#26377;&#21487;&#20998;&#26512;&#24615;&#30340;&#32534;&#35793;&#20445;&#30041;&#28304;&#20195;&#30721;&#22240;&#26524;&#20851;&#31995;&#65292;&#26576;&#20123;&#26410;&#23450;&#20041;&#34892;&#20026;<a href="https://zh.cppreference.com/mwiki/index.php?title=c/language/as_if&amp;action=edit&amp;redlink=1" class="new" title="c/language/as if&#65288;&#39029;&#38754;&#19981;&#23384;&#22312;&#65289;">&#25913;&#21464;</a>&#23427;&#12290;</p>
<p>&#21487;&#20998;&#26512;&#24615;&#25193;&#23637;&#65292;&#20801;&#35768;&#22312;&#38519;&#38449;&#20986;&#29616;&#26102;&#35843;&#29992;<a href="c-error-set_constraint_handler_s.html">&#36816;&#34892;&#26102;&#21046;&#32422;&#22788;&#29702;</a>&#65292;&#20316;&#20026;&#19968;&#31181;&#23454;&#29616;&#23450;&#20041;&#34892;&#20026;&#30340;&#24418;&#24335;&#12290;</p>
<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.10.8.3/1 Conditional feature macros (p: 177)</li>
</ul>
</dd>
</dl>
<dl>
<dd>
<ul>
<li>Annex L Analyzability (p: 652-653)</li>
</ul>
</dd>
</dl>
</div>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>