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

358 lines
36 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>&#25991;&#26412;&#26367;&#25442;&#23439;</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_preprocessor_replace skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#25991;&#26412;&#26367;&#25442;&#23439;</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <a href="cpp-preprocessor.html">preprocessor</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<p>&#39044;&#22788;&#29702;&#22120;&#25903;&#25345;&#25991;&#26412;&#23439;&#26367;&#25442;&#21644;&#20223;&#20989;&#25968;&#25991;&#26412;&#23439;&#26367;&#25442;&#12290;</p>
<h3><span class="mw-headline" id=".E8.AF.AD.E6.B3.95">&#35821;&#27861;</span></h3>
<table class="t-sdsc-begin">
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><code><b>#define</b></code> <span class="t-spar">&#26631;&#35782;&#31526;</span> <span class="t-spar">&#26367;&#25442;&#21015;&#34920;</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>#define</b></code> <span class="t-spar">&#26631;&#35782;&#31526;</span><code><b>(</b></code> <span class="t-spar">&#24418;&#21442;</span> <code><b>)</b></code> <span class="t-spar">&#26367;&#25442;&#21015;&#34920;</span><span class="t-mark">(&#21487;&#36873;)</span></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>#define</b></code> <span class="t-spar">&#26631;&#35782;&#31526;</span><code><b>(</b></code> <span class="t-spar">&#24418;&#21442;</span><code><b>, ... )</b></code> <span class="t-spar">&#26367;&#25442;&#21015;&#34920;</span><span class="t-mark">(&#21487;&#36873;)</span></td>
<td>(3)</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><code><b>#define</b></code> <span class="t-spar">&#26631;&#35782;&#31526;</span><code><b>( ... )</b></code> <span class="t-spar">&#26367;&#25442;&#21015;&#34920;</span><span class="t-mark">(&#21487;&#36873;)</span></td>
<td>(4)</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
<tr class="t-sdsc">
<td><code><b>#undef</b></code> <span class="t-spar">&#26631;&#35782;&#31526;</span></td>
<td>(5)</td>
<td class="t-sdsc-nopad"></td>
</tr>
<tr>
<td colspan="10" class="t-sdsc-sep"></td>
</tr>
</table>
<h3><span class="mw-headline" id=".E8.A7.A3.E9.87.8A">&#35299;&#37322;</span></h3>
<h4><span class="mw-headline" id=".23define_.E6.8C.87.E4.BB.A4"><code>#define</code> &#25351;&#20196;</span></h4>
<p><code>#define</code> &#25351;&#20196;&#23558; <span class="t-spar">&#26631;&#35782;&#31526;</span> &#23450;&#20041;&#20026;&#23439;&#65292;&#21363;&#25351;&#31034;&#32534;&#35793;&#22120;&#20197;&#23558;&#20854;&#21518;&#20986;&#29616;&#30340;&#25152;&#26377; <span class="t-spar">&#26631;&#35782;&#31526;</span> &#37117;&#26367;&#25442;&#20026; <span class="t-spar">&#26367;&#25442;&#21015;&#34920;</span>&#65292;&#32780;&#23427;&#20063;&#21487;&#20197;&#34987;&#36827;&#19968;&#27493;&#22788;&#29702;&#12290;&#22914;&#26524;&#35813;&#26631;&#35782;&#31526;&#24050;&#34987;&#23450;&#20041;&#20026;&#20219;&#20309;&#31867;&#22411;&#30340;&#23439;&#65292;&#37027;&#20040;&#38500;&#38750;&#36825;&#20123;&#23450;&#20041;&#37117;&#30456;&#21516;&#65292;&#21542;&#21017;&#31243;&#24207;&#38750;&#33391;&#26500;&#12290;</p>
<h5><span class="mw-headline" id=".E4.BB.BF.E5.AF.B9.E8.B1.A1.E5.AE.8F">&#20223;&#23545;&#35937;&#23439;</span></h5>
<p>&#20223;&#23545;&#35937;&#23439;&#65288;object-like&#65289;&#20197; <span class="t-spar">&#26367;&#25442;&#21015;&#34920;</span> &#26367;&#25442;&#27599;&#27425;&#20986;&#29616;&#30340;&#34987;&#23450;&#20041; <span class="t-spar">&#26631;&#35782;&#31526;</span>&#12290;<code>#define</code> &#25351;&#20196;&#30340;&#29256;&#26412; (1) &#20934;&#30830;&#34920;&#29616;&#22914;&#27492;&#12290;</p>
<h5><span class="mw-headline" id=".E4.BB.BF.E5.87.BD.E6.95.B0.E5.AE.8F">&#20223;&#20989;&#25968;&#23439;</span></h5>
<p>&#20223;&#20989;&#25968;&#23439;&#65288;function-like&#65289;&#20197; <span class="t-spar">&#26367;&#25442;&#21015;&#34920;</span> &#26367;&#25442;&#27599;&#27425;&#20986;&#29616;&#30340;&#34987;&#23450;&#20041; <span class="t-spar">&#26631;&#35782;&#31526;</span>&#65292;&#21487;&#36873;&#22320;&#25509;&#21463;&#19968;&#23450;&#37327;&#30340;&#23454;&#21442;&#65292;&#23427;&#20204;&#38543;&#21363;&#26367;&#25442;&#25481; <span class="t-spar">&#26367;&#25442;&#21015;&#34920;</span> &#20013;&#20986;&#29616;&#30340;&#20219;&#20309;&#23545;&#24212;&#30340; <span class="t-spar">&#24418;&#21442;</span>&#12290;</p>
<p>&#20223;&#20989;&#25968;&#23439;&#35821;&#27861;&#31867;&#20284;&#20989;&#25968;&#35843;&#29992;&#35821;&#27861;&#65306;&#27599;&#20010;&#23439;&#21517;&#23454;&#20363;&#21518;&#38543;&#19968;&#20010; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">(</span></span></span> &#20316;&#20026;&#19979;&#20010;&#39044;&#22788;&#29702;&#35760;&#21495;&#65292;&#25152;&#24341;&#20837;&#30340;&#35760;&#21495;&#24207;&#21015;&#23558;&#34987;&#26367;&#25442;&#20026; <span class="t-spar">&#26367;&#25442;&#21015;&#34920;</span>&#12290;&#35813;&#24207;&#21015;&#20197;&#21305;&#37197;&#30340; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="br0">)</span></span></span> &#35760;&#21495;&#32456;&#27490;&#65292;&#36339;&#36807;&#20013;&#38388;&#30340;&#21305;&#37197;&#24038;&#21491;&#25324;&#21495;&#23545;&#12290;</p>
<p>&#23545;&#20110;&#29256;&#26412; (2)&#65292;&#23454;&#21442;&#25968;&#37327;&#24517;&#39035;&#19982;&#23439;&#23450;&#20041;&#20013;&#30340;&#24418;&#21442;&#25968;&#37327;&#30456;&#21516;&#12290;&#23545;&#20110;&#29256;&#26412; (3,4) &#65292;&#23454;&#21442;&#25968;&#37327;&#24517;&#39035;<span class="t-rev-inl t-until-cxx20"><span>&#22810;&#20110;</span> <span><span class="t-mark-rev t-until-cxx20">(C++20 &#21069;)</span></span></span><span class="t-rev-inl t-since-cxx20"><span>&#19981;&#23569;&#20110;</span> <span><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></span></span>&#24418;&#21442;&#25968;&#37327;&#65288;&#19981;&#35745; <code><b>...</b></code>&#65289;&#12290;&#21542;&#21017;&#31243;&#24207;&#38750;&#33391;&#26500;&#12290;&#22914;&#26524;&#26631;&#35782;&#31526;&#26410;&#20351;&#29992;&#20989;&#25968;&#20889;&#27861;&#65292;&#21363;&#23427;&#33258;&#36523;&#20043;&#21518;&#27809;&#26377;&#25324;&#21495;&#65292;&#37027;&#20040;&#23427;&#23436;&#20840;&#19981;&#34987;&#26367;&#25442;&#12290;</p>
<p><code>#define</code> &#25351;&#20196;&#30340;&#29256;&#26412; (2) &#23450;&#20041;&#31616;&#21333;&#20223;&#20989;&#25968;&#23439;&#12290;</p>
<p><code>#define</code> &#25351;&#20196;&#30340;&#29256;&#26412; (3) &#23450;&#20041;&#26377;&#21487;&#21464;&#25968;&#37327;&#23454;&#21442;&#30340;&#20223;&#20989;&#25968;&#23439;&#12290;&#39069;&#22806;&#30340;&#23454;&#21442;&#65288;&#26159;&#35859;<i>&#21487;&#21464;&#23454;&#21442;</i>&#65289;&#21487;&#29992; <code>__VA_ARGS__</code> &#26631;&#35782;&#31526;&#35775;&#38382;&#65292;&#23427;&#20250;&#34987;&#19982;&#35201;&#34987;&#26367;&#25442;&#30340;&#26631;&#35782;&#31526;&#19968;&#36215;&#25552;&#20379;&#30340;&#23454;&#21442;&#26367;&#25442;&#12290;</p>
<p><code>#define</code> &#25351;&#20196;&#30340;&#29256;&#26412; (4) &#23450;&#20041;&#26377;&#21487;&#21464;&#25968;&#37327;&#23454;&#21442;&#30340;&#20223;&#20989;&#25968;&#23439;&#65292;&#20294;&#26080;&#24120;&#35268;&#23454;&#21442;&#12290;&#39069;&#22806;&#30340;&#23454;&#21442;&#65288;&#26159;&#35859;<i>&#21487;&#21464;&#23454;&#21442;</i>&#65289;&#21482;&#33021;&#29992; <code>__VA_ARGS__</code> &#26631;&#35782;&#31526;&#35775;&#38382;&#65292;&#23427;&#20250;&#34987;&#19982;&#35201;&#34987;&#26367;&#25442;&#30340;&#26631;&#35782;&#31526;&#19968;&#36215;&#25552;&#20379;&#30340;&#23454;&#21442;&#26367;&#25442;&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx20">
<td>
<p>&#23545;&#20110;&#29256;&#26412; (3,4)&#65292;<span class="t-spar">&#26367;&#25442;&#21015;&#34920;</span> &#21487;&#20197;&#21547;&#26377;&#35760;&#21495;&#24207;&#21015;&ldquo;<code><b>__VA_OPT__ (</b></code> <span class="t-spar">&#20869;&#23481;</span> <code><b>)</b></code>&rdquo;&#65292;&#22914;&#26524; <code>__VA_ARGS__</code> &#38750;&#31354;&#65292;&#37027;&#20040;&#23427;&#20250;&#34987; <span class="t-spar">&#20869;&#23481;</span> &#26367;&#25442;&#65292;&#21542;&#21017;&#19981;&#23637;&#24320;&#25104;&#20219;&#20309;&#20869;&#23481;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co2">#define F(...) f(0 __VA_OPT__(,) __VA_ARGS__)</span>
<span class="co2">#define G(X, ...) f(0, X __VA_OPT__(,) __VA_ARGS__)</span>
<span class="co2">#define SDEF(sname, ...) S sname __VA_OPT__(= { __VA_ARGS__ })</span>
F<span class="br0">(</span>a, b, c<span class="br0">)</span> <span class="co1">// &#26367;&#25442;&#20026; f(0, a, b, c)</span>
F<span class="br0">(</span><span class="br0">)</span> <span class="co1">// &#26367;&#25442;&#20026; f(0)</span>
G<span class="br0">(</span>a, b, c<span class="br0">)</span> <span class="co1">// &#26367;&#25442;&#20026; f(0, a, b, c)</span>
G<span class="br0">(</span>a, <span class="br0">)</span> <span class="co1">// &#26367;&#25442;&#20026; f(0, a)</span>
G<span class="br0">(</span>a<span class="br0">)</span> <span class="co1">// &#26367;&#25442;&#20026; f(0, a)</span>
SDEF<span class="br0">(</span>foo<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#26367;&#25442;&#20026; S foo;</span>
SDEF<span class="br0">(</span>bar, <span class="nu0">1</span>, <span class="nu0">2</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#26367;&#25442;&#20026; S bar = { 1, 2 };</span></pre></div>
</div>
</td>
<td><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
</table>
<p>&#27880;&#24847;&#65306;&#22914;&#26524;&#20223;&#20989;&#25968;&#23439;&#30340;&#23454;&#21442;&#20013;&#21253;&#21547;&#19981;&#20026;&#21305;&#37197;&#30340;&#24038;&#21491;&#25324;&#21495;&#23545;&#25152;&#20445;&#25252;&#30340;&#36887;&#21495;&#65288;&#26368;&#24120;&#20986;&#29616;&#20110;&#27169;&#26495;&#23454;&#21442;&#21015;&#34920;&#20013;&#65292;&#22914; <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-error-assert.html"><span class="kw774">assert</span></a><span class="br0">(</span><a href="cpp-types-is_same.html"><span class="kw589">std::<span class="me2">is_same_v</span></span></a><span class="sy1">&lt;</span><span class="kw4">int</span>, <span class="kw4">int</span><span class="sy1">&gt;</span><span class="br0">)</span><span class="sy4">;</span></span></span> &#25110; <span class="t-c"><span class="mw-geshi cpp source-cpp">BOOST_FOREACH<span class="br0">(</span><a href="cpp-utility-pair.html"><span class="kw1096">std::<span class="me2">pair</span></span></a><span class="sy1">&lt;</span><span class="kw4">int</span>,<span class="kw4">int</span><span class="sy1">&gt;</span> p, m<span class="br0">)</span></span></span>&#65289;&#65292;&#37027;&#20040;&#36887;&#21495;&#34987;&#35299;&#37322;&#25104;&#23439;&#23454;&#21442;&#20998;&#38548;&#31526;&#65292;&#24182;&#36896;&#25104;&#30001;&#20110;&#23454;&#21442;&#25968;&#37327;&#19981;&#21305;&#37197;&#25152;&#33268;&#30340;&#32534;&#35793;&#22833;&#36133;&#12290;</p>
<h4><span class="mw-headline" id=".E4.BF.9D.E7.95.99.E5.AE.8F.E5.90.8D">&#20445;&#30041;&#23439;&#21517;</span></h4>
<p>&#21253;&#21547;&#26631;&#20934;&#24211;&#22836;&#25991;&#20214;&#30340;&#32763;&#35793;&#21333;&#20803;&#19981;&#21487; <code>#define</code> &#25110; <code>#undef</code> &#22768;&#26126;&#20110;&#20219;&#20309;&#26631;&#20934;&#24211;&#22836;&#25991;&#20214;&#20013;&#25152;&#22768;&#26126;&#30340;&#21517;&#23383;&#12290;</p>
<p>&#20351;&#29992;&#26631;&#20934;&#24211;&#20219;&#20309;&#37096;&#20998;&#30340;&#32763;&#35793;&#21333;&#20803;&#19981;&#21487; <code>#define</code> &#25110; <code>#undef</code> &#35789;&#27861;&#19978;&#31561;&#21516;&#20110;&#19979;&#21015;&#20869;&#23481;&#30340;&#21517;&#31216;&#65306;</p>
<ul>
<li><a href="cpp-keyword.html">&#20851;&#38190;&#23383;</a></li>
</ul>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx11">
<td>
<ul>
<li><a href="cpp-keyword.html">&#26377;&#29305;&#27530;&#21547;&#20041;&#30340;&#26631;&#35782;&#31526;</a></li>
<li><a href="cpp-language-attributes.html#.E6.A0.87.E5.87.86.E5.B1.9E.E6.80.A7">&#20219;&#20309;&#26631;&#20934;&#23646;&#24615;&#35760;&#21495;</a></li>
</ul>
</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-cxx20">
<td>
<p>&#38500;&#20102;&#21487;&#23450;&#20041; <code>likely</code> &#19982; <code>unlikely</code> &#20026;&#20223;&#20989;&#25968;&#23439;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
</table>
<p>&#21542;&#21017;&#65292;&#34892;&#20026;&#26410;&#23450;&#20041;&#12290;</p>
<h4><span class="mw-headline" id=".23_.E4.B8.8E_.23.23_.E8.BF.90.E7.AE.97.E7.AC.A6"><code>#</code> &#19982; <code>##</code> &#36816;&#31639;&#31526;</span></h4>
<p>&#20223;&#20989;&#25968;&#23439;&#20013;&#65292;&#22914;&#26524;<span class="t-spar">&#26367;&#25442;&#21015;&#34920;</span> &#20013;&#19968;&#20010;&#26631;&#35782;&#31526;&#21069;&#26377; <code>#</code> &#36816;&#31639;&#31526;&#65292;&#37027;&#20040;&#35813;&#26631;&#35782;&#31526;&#22312;&#36816;&#34892;&#24418;&#21442;&#26367;&#25442;&#30340;&#22522;&#30784;&#19978;&#20197;&#24341;&#21495;&#21253;&#22260;&#65292;&#23454;&#38469;&#19978;&#21019;&#24314;&#19968;&#20010;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#12290;&#21478;&#22806;&#65292;&#39044;&#22788;&#29702;&#22120;&#20026;&#20869;&#23884;&#30340;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#65288;&#22914;&#26524;&#23384;&#22312;&#65289;&#22806;&#22260;&#30340;&#24341;&#21495;&#28155;&#21152;&#21453;&#26012;&#26464;&#20197;&#36827;&#34892;&#36716;&#20041;&#65292;&#24182;&#25353;&#38656;&#35201;&#21452;&#20889;&#23383;&#31526;&#20018;&#20013;&#30340;&#21453;&#26012;&#26464;&#12290;&#31227;&#38500;&#25152;&#26377;&#21069;&#23548;&#21644;&#23614;&#38543;&#31354;&#30333;&#31526;&#65292;&#24182;&#23558;&#25991;&#26412;&#20013;&#38388;&#65288;&#38500;&#20869;&#23884;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#20013;&#38388;&#22806;&#65289;&#30340;&#20219;&#20309;&#31354;&#30333;&#31526;&#24207;&#21015;&#32553;&#20943;&#25104;&#21333;&#20010;&#31354;&#26684;&#12290;&#27492;&#25805;&#20316;&#34987;&#31216;&#20026;&ldquo;&#23383;&#31526;&#20018;&#21270;&rdquo;&#65292;&#22914;&#26524;&#23383;&#31526;&#20018;&#21270;&#30340;&#32467;&#26524;&#19981;&#26159;&#21512;&#27861;&#30340;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#65292;&#37027;&#20040;&#34892;&#20026;&#26410;&#23450;&#20041;&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx11">
<td>
<p><code>#</code> &#20986;&#29616;&#20110; <code>__VA_ARGS__</code> &#20043;&#21069;&#26102;&#65292;&#23637;&#24320;&#21518;&#30340; __VA_ARGS__ &#25972;&#20307;&#34987;&#21253;&#22312;&#24341;&#21495;&#20013;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co2">#define showlist(...) puts(#__VA_ARGS__)</span>
showlist<span class="br0">(</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#23637;&#24320;&#25104; puts(&quot;&quot;)</span>
showlist<span class="br0">(</span><span class="nu0">1</span>, <span class="st0">&quot;x&quot;</span>, <span class="kw4">int</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#23637;&#24320;&#25104; puts(&quot;1, \&quot;x\&quot;, int&quot;)</span></pre></div>
</div>
</td>
<td><span class="t-mark-rev t-since-cxx11">(C++11 &#36215;)</span></td>
</tr>
</table>
<p>&#22914;&#26524; <span class="t-spar">&#26367;&#25442;&#21015;&#34920;</span> &#20013;&#20219;&#20309;&#20004;&#20010;&#30456;&#32487;&#26631;&#35782;&#31526;&#20043;&#38388;&#26377; <code>##</code> &#36816;&#31639;&#31526;&#65292;&#37027;&#20040;&#36825;&#20004;&#20010;&#26631;&#35782;&#31526;&#65288;&#39318;&#20808;&#26410;&#34987;&#23439;&#23637;&#24320;&#65289;&#22312;&#36816;&#34892;&#24418;&#21442;&#26367;&#25442;&#30340;&#22522;&#30784;&#19978;&#23558;&#32467;&#26524;&#36827;&#34892;&#25340;&#25509;&#12290;&#27492;&#25805;&#20316;&#34987;&#31216;&#20026;&ldquo;&#25340;&#25509;&rdquo;&#25110;&ldquo;&#35760;&#21495;&#31896;&#36148;&rdquo;&#12290;&#21482;&#26377;&#19968;&#21516;&#32452;&#25104;&#21512;&#27861;&#35760;&#21495;&#30340;&#35760;&#21495;&#25165;&#21487;&#20197;&#31896;&#36148;&#65306;&#22914;&#32452;&#25104;&#26356;&#38271;&#26631;&#35782;&#31526;&#30340;&#26631;&#35782;&#31526;&#12289;&#32452;&#25104;&#25968;&#23383;&#30340;&#25968;&#23383;&#20301;&#65292;&#25110;&#32452;&#25104; <code>+=</code> &#30340;&#36816;&#31639;&#31526; <code>+</code> &#21644; <code>=</code>&#12290;&#19981;&#33021;&#36890;&#36807;&#31896;&#36148; <code>/</code> &#21644; <code>*</code> &#26469;&#21019;&#24314;&#27880;&#37322;&#65292;&#36825;&#26159;&#22240;&#20026;&#27880;&#37322;&#22312;&#32771;&#34385;&#25991;&#26412;&#23439;&#26367;&#25442;&#21069;&#23601;&#24050;&#32463;&#34987;&#31227;&#38500;&#20102;&#12290;<span class="t-rev-inl t-since-cxx23"><span>&#22914;&#26524;&#32467;&#26524;&#20197;&#19968;&#20010;&#19982;<a href="cpp-language-escape.html">&#36890;&#29992;&#23383;&#31526;&#21517;</a>&#30340;&#35821;&#27861;&#21305;&#37197;&#30340;&#24207;&#21015;&#36215;&#22987;&#65292;&#37027;&#20040;&#34892;&#20026;&#26410;&#23450;&#20041;&#12290;&#22312;<a href="cpp-language-translation_phases.html#.E9.98.B6.E6.AE.B5_3">&#32763;&#35793;&#38454;&#27573; 3</a>&#20013;&#30340;&#36890;&#29992;&#23383;&#31526;&#21517;&#26367;&#25442;&#19981;&#31639;&#22312;&#20869;&#12290;</span> <span><span class="t-mark-rev t-since-cxx23">(C++23 &#36215;)</span></span></span>&#22914;&#26524;&#36830;&#25509;&#30340;&#32467;&#26524;&#19981;&#26159;&#21512;&#27861;&#35760;&#21495;&#65292;&#37027;&#20040;&#34892;&#20026;&#26410;&#23450;&#20041;&#12290;</p>
<p>&#27880;&#24847;&#65306;&#19968;&#20123;&#32534;&#35793;&#22120;&#25552;&#20379;&#20102;&#19968;&#39033;&#25193;&#23637;&#65292;&#20801;&#35768; ## &#20986;&#29616;&#20110;&#36887;&#21495;&#21518;&#21450; __VA_ARGS__ &#21069;&#65292;&#27492;&#24773;&#20917;&#19979; ## &#22312;&#23384;&#22312;&#21487;&#21464;&#23454;&#21442;&#26102;&#19981;&#20570;&#20219;&#20309;&#20107;&#65292;&#20294;&#22312;&#19981;&#23384;&#22312;&#21487;&#21464;&#23454;&#21442;&#26102;&#31227;&#38500;&#36887;&#21495;&#65306;&#36825;&#20351;&#24471;&#21487;&#20197;&#23450;&#20041;&#22914; <code>fprintf (stderr, format, ##__VA_ARGS__)</code> &#36825;&#26679;&#30340;&#23439;&#12290;</p>
<h4><span class="mw-headline" id=".23undef_.E6.8C.87.E4.BB.A4"><code>#undef</code> &#25351;&#20196;</span></h4>
<p><code>#undef</code> &#25351;&#20196;&#21462;&#28040;&#23450;&#20041; <span class="t-spar">&#26631;&#35782;&#31526;</span>&#65292;&#21363;&#21462;&#28040; <code>#define</code> &#25351;&#20196;&#25152;&#20316;&#30340; <span class="t-spar">&#26631;&#35782;&#31526;</span> &#23450;&#20041;&#12290;&#22914;&#26524;&#26631;&#35782;&#31526;&#26410;&#20851;&#32852;&#21040;&#23439;&#65292;&#37027;&#20040;&#24573;&#30053;&#35813;&#25351;&#20196;&#12290;</p>
<h3><span class="mw-headline" id=".E9.A2.84.E5.AE.9A.E4.B9.89.E5.AE.8F">&#39044;&#23450;&#20041;&#23439;</span></h3>
<p>&#19979;&#21015;&#23439;&#21517;&#24050;&#39044;&#23450;&#20041;&#20110;&#27599;&#20010;&#32763;&#35793;&#21333;&#20803;&#20013;&#12290;</p>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__cplusplus</span></span></div>
</div>
</td>
<td>&#20195;&#34920;&#25152;&#29992;&#30340; C++ &#26631;&#20934;&#29256;&#26412;&#65292;&#23637;&#24320;&#25104;&#20540;
<ul>
<li><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">199711L</span></span></span><span class="t-mark-rev t-until-cxx11">(C++11 &#21069;)</span></li>
<li><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">201103L</span></span></span><span class="t-mark-rev t-since-cxx11">(C++11)</span></li>
<li><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">201402L</span></span></span><span class="t-mark-rev t-since-cxx14">(C++14)</span></li>
<li><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">201703L</span></span></span><span class="t-mark-rev t-since-cxx17">(C++17)</span>&#65292;&#25110;</li>
<li><span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">202002L</span></span></span><span class="t-mark-rev t-since-cxx20">(C++20)</span><br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></li>
</ul>
</td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__STDC_HOSTED__</span></span></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#22914;&#26524;&#23454;&#29616;&#26377;&#23487;&#20027;&#65288;&#22312;&#25805;&#20316;&#31995;&#32479;&#19979;&#36816;&#34892;&#65289;&#21017;&#23637;&#24320;&#25104;&#25972;&#25968;&#24120;&#37327; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">1</span></span></span>&#65292;&#22914;&#26524;&#23454;&#29616;&#33258;&#31435;&#65288;&#19981;&#22312;&#25805;&#20316;&#31995;&#32479;&#19979;&#36816;&#34892;&#65289;&#21017;&#23637;&#24320;&#25104; <span class="t-c"><span class="mw-geshi cpp source-cpp">&#8203;<span class="nu0">0</span>&#8203;</span></span><br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__FILE__</span></span></div>
</div>
</td>
<td>&#23637;&#24320;&#25104;&#24403;&#21069;&#25991;&#20214;&#21517;&#65292;&#20316;&#20026;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;&#65292;&#21487;&#29992; <a href="cpp-preprocessor-line.html"><code>#line</code></a> &#25351;&#20196;&#26356;&#25913;<br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__LINE__</span></span></div>
</div>
</td>
<td>&#23637;&#24320;&#25104;&#28304;&#25991;&#20214;&#34892;&#21495;&#65292;&#25972;&#25968;&#24120;&#37327;&#65292;&#21487;&#29992; <a href="cpp-preprocessor-line.html"><code>#line</code></a> &#25351;&#20196;&#26356;&#25913;<br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__DATE__</span></span></div>
</div>
</td>
<td>&#23637;&#24320;&#25104;&#32763;&#35793;&#26085;&#26399;&#65292;&#24418;&#24335;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">&quot;Mmm dd yyyy&quot;</span></span></span> &#30340;&#23383;&#31526;&#20018;&#12290;&#22914;&#26524;&#26376;&#20013;&#26085;&#26399;&#25968;&#23567;&#20110; 10 &#21017; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">&quot;dd&quot;</span></span></span> &#30340;&#39318;&#23383;&#31526;&#20026;&#31354;&#26684;&#12290;&#26376;&#20221;&#21517;&#22914;&#21516;&#20197; <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-chrono-c-asctime.html"><span class="kw1015">std::<span class="me2">asctime</span></span></a><span class="br0">(</span><span class="br0">)</span></span></span> &#29983;&#25104;<br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__TIME__</span></span></div>
</div>
</td>
<td>&#23637;&#24320;&#25104;&#32763;&#35793;&#26102;&#38388;&#65292;&#24418;&#24335;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">&quot;hh:mm:ss&quot;</span></span></span> &#30340;&#23383;&#31526;&#20018;&#23383;&#38754;&#37327;<br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__STDCPP_DEFAULT_NEW_ALIGNMENT__</span></span></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div>
</div>
</td>
<td>&#23637;&#24320;&#25104; <span class="t-lc"><a href="cpp-types-size_t.html">std::size_t</a></span> &#23383;&#38754;&#37327;&#65292;&#20854;&#20540;&#20026;&#23545;&#19981;&#20855;&#23545;&#40784;&#30340; <span class="t-lc"><a href="cpp-memory-new-operator_new.html">operator new</a></span> &#30340;&#35843;&#29992;&#25152;&#20445;&#35777;&#30340;&#23545;&#40784;&#65288;&#26356;&#22823;&#30340;&#23545;&#40784;&#23558;&#20256;&#36882;&#32473;&#20855;&#23545;&#40784;&#37325;&#36733;&#65292;&#22914; <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-memory-new-operator_new.html"><span class="kw687">operator new</span></a><span class="br0">(</span><a href="cpp-types-size_t.html"><span class="kw100">std::<span class="me2">size_t</span></span></a>, <a href="cpp-memory-new-align_val_t.html"><span class="kw697">std::<span class="me2">align_val_t</span></span></a><span class="br0">)</span></span></span>&#65289;<br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
</table>
<p>&#23454;&#29616;&#21487;&#33021;&#39044;&#23450;&#20041;&#19979;&#21015;&#20854;&#20182;&#30340;&#23439;&#21517;&#12290;</p>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__STDC__</span></span></div>
</div>
</td>
<td>&#22914;&#26524;&#23384;&#22312;&#21017;&#20026;&#23454;&#29616;&#23450;&#20041;&#20540;&#65292;&#20856;&#22411;&#22320;&#29992;&#20110;&#25351;&#31034; C &#36981;&#20174;&#24615;<br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__STDC_VERSION__</span></span></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#22914;&#26524;&#23384;&#22312;&#21017;&#20026;&#23454;&#29616;&#23450;&#20041;&#20540;<br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__STDC_ISO_10646__</span></span></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#22914;&#26524; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">wchar_t</span></span></span> &#20351;&#29992; Unicode &#65292;&#21017;&#23637;&#24320;&#25104; <span class="t-c"><span class="mw-geshi cpp source-cpp">yyyymmL</span></span> &#24418;&#24335;&#30340;&#25972;&#25968;&#24120;&#37327;&#65292;&#26085;&#26399;&#25351;&#31034;&#25152;&#25903;&#25345;&#30340; Unicode &#30340;&#26368;&#36817;&#29256;&#26412;<br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__STDC_MB_MIGHT_NEQ_WC__</span></span></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#22914;&#26524;&#23545;&#20110;&#22522;&#26412;&#23383;&#31526;&#38598;&#25104;&#21592; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="st0">&#39;x&#39;</span> <span class="sy1">==</span> L<span class="st0">&#39;x&#39;</span></span></span> &#21487;&#33021;&#20026;&#20551;&#65292;&#21017;&#23637;&#24320;&#25104; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">1</span></span></span>&#65292;&#22914;&#22312;&#22522;&#20110; EBCDIC &#24182;&#19988;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw4">wchar_t</span></span></span> &#20351;&#29992; Unicode &#30340;&#31995;&#32479;&#19978;&#12290;<br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__STDCPP_THREADS__</span></span></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span></span></span></div>
</div>
</td>
<td>&#22914;&#26524;&#31243;&#24207;&#33021;&#25317;&#26377;&#22810;&#20110;&#19968;&#20010;&#25191;&#34892;&#32447;&#31243;&#21017;&#23637;&#24320;&#25104; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">1</span></span></span><br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
</table>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><span class="t-lines"><span>__STDCPP_STRICT_POINTER_SAFETY__</span></span></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx11">(C++11)</span><span class="t-mark-rev t-until-cxx23">(C++23 &#20013;&#31227;&#38500;)</span></span></span></div>
</div>
</td>
<td>&#22914;&#26524;&#23454;&#29616;&#25903;&#25345;&#20005;&#26684; <span class="t-lc"><a href="cpp-memory-gc-pointer_safety.html">std::pointer_safety</a></span> &#21017;&#23637;&#24320;&#25104; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="nu0">1</span></span></span><br />
<span class="t-mark">(&#23439;&#24120;&#37327;)</span></td>
</tr>
</table>
<p>&#36825;&#20123;&#23439;&#30340;&#20540;&#65288;&#38500;&#20102; <code>__FILE__</code> &#21644; <code>__LINE__</code>&#65289;&#22312;&#25972;&#20010;&#32763;&#35793;&#21333;&#20803;&#20445;&#25345;&#20026;&#24120;&#37327;&#12290;&#35797;&#22270;&#37325;&#23450;&#20041;&#25110;&#21462;&#28040;&#23450;&#20041;&#36825;&#20123;&#23439;&#20250;&#23548;&#33268;&#26410;&#23450;&#20041;&#34892;&#20026;&#12290;</p>
<table class="t-rev-begin">
<tr class="t-rev t-since-cxx11">
<td>
<p>&#27880;&#24847;&#65306;&#22312;&#27599;&#20010;&#20989;&#25968;&#20307;&#30340;&#20316;&#29992;&#22495;&#20869;&#37096;&#37117;&#26377;&#19968;&#20010;&#21517;&#20026; <span class="t-c"><span class="mw-geshi cpp source-cpp">__func__</span></span> &#30340;&#29305;&#27530;&#30340;&#20989;&#25968;&#23616;&#22495;&#39044;&#23450;&#20041;&#21464;&#37327;&#65292;&#23427;&#34987;&#23450;&#20041;&#20026;&#19968;&#20010;&#25345;&#26377;&#20855;&#26377;&#23454;&#29616;&#23450;&#20041;&#26684;&#24335;&#30340;&#20989;&#25968;&#21517;&#30340;&#38745;&#24577;&#23383;&#31526;&#25968;&#32452;&#12290;&#23427;&#19981;&#26159;&#39044;&#22788;&#29702;&#22120;&#23439;&#65292;&#20294;&#23427;&#19982; <code>__FILE__</code> &#21644; <code>__LINE__</code> &#19968;&#36215;&#20351;&#29992;&#65292;&#20363;&#22914; <span class="t-lc"><a href="cpp-error-assert.html">assert</a></span>&#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-cxx20">
<td>
<h4><span class="mw-headline" id=".E8.AF.AD.E8.A8.80.E5.8A.9F.E8.83.BD.E7.89.B9.E6.80.A7.E6.B5.8B.E8.AF.95.E5.AE.8F">&#35821;&#35328;&#21151;&#33021;&#29305;&#24615;&#27979;&#35797;&#23439;</span></h4>
<p>&#26631;&#20934;&#23450;&#20041;&#19968;&#32452;&#23545;&#24212;&#20110; C++11 &#25110;&#20043;&#21518;&#24341;&#20837;&#30340; C++ &#35821;&#35328;&#21151;&#33021;&#29305;&#24615;&#30340;&#39044;&#22788;&#29702;&#22120;&#23439;&#12290;&#23427;&#20204;&#34987;&#29992;&#26469;&#20197;&#31616;&#21333;&#19988;&#21487;&#31227;&#26893;&#30340;&#26041;&#24335;&#26816;&#27979;&#25152;&#35828;&#30340;&#29305;&#24615;&#26159;&#21542;&#23384;&#22312;&#12290;</p>
<p>&#35814;&#35265;<a href="cpp-feature_test.html">&#21151;&#33021;&#29305;&#24615;&#27979;&#35797;</a> &#12290;</p>
</td>
<td><span class="t-mark-rev t-since-cxx20">(C++20 &#36215;)</span></td>
</tr>
</table>
<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="cpp source-cpp">
<pre class="de1"><span class="co2">#include &lt;iostream&gt;</span>
<span class="co1">// &#21046;&#36896;&#20989;&#25968;&#24037;&#21378;&#24182;&#20351;&#29992;&#23427;</span>
<span class="co2">#define FUNCTION(name, a) int fun_##name() { return a;}</span>
FUNCTION<span class="br0">(</span>abcd, <span class="nu0">12</span><span class="br0">)</span>
FUNCTION<span class="br0">(</span>fff, <span class="nu0">2</span><span class="br0">)</span>
FUNCTION<span class="br0">(</span>qqq, <span class="nu0">23</span><span class="br0">)</span>
<span class="co2">#undef FUNCTION</span>
<span class="co2">#define FUNCTION 34</span>
<span class="co2">#define OUTPUT(a) std::cout &lt;&lt; &quot;output: &quot; #a &lt;&lt; &#39;\n&#39;</span>
<span class="co1">// &#22312;&#21518;&#38754;&#30340;&#23439;&#23450;&#20041;&#20013;&#20351;&#29992;&#20043;&#21069;&#30340;&#23439;</span>
<span class="co2">#define WORD &quot;Hello &quot;</span>
<span class="co2">#define OUTER(...) WORD #__VA_ARGS__</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> <span class="st0">&quot;abcd: &quot;</span> <span class="sy1">&lt;&lt;</span> fun_abcd<span class="br0">(</span><span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> <span class="st0">&quot;fff: &quot;</span> <span class="sy1">&lt;&lt;</span> fun_fff<span class="br0">(</span><span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> <span class="st0">&quot;qqq: &quot;</span> <span class="sy1">&lt;&lt;</span> fun_qqq<span class="br0">(</span><span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> FUNCTION <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span>
OUTPUT<span class="br0">(</span>million<span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#27880;&#24847;&#36825;&#37324;&#27809;&#26377;&#24341;&#21495;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> OUTER<span class="br0">(</span>World<span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span>
<a href="cpp-io-cout.html"><span class="kw1758">std::<span class="me2">cout</span></span></a> <span class="sy1">&lt;&lt;</span> OUTER<span class="br0">(</span>WORD World<span class="br0">)</span> <span class="sy1">&lt;&lt;</span> <span class="st0">&#39;<span class="es1">\n</span>&#39;</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">abcd: 12
fff: 2
qqq: 23
34
output: million
Hello World
Hello WORD World</pre></div>
</div>
</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>