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

162 lines
16 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>&#36716;&#22411;&#36816;&#31639;&#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_cast skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading">&#36716;&#22411;&#36816;&#31639;&#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>&#36827;&#34892;&#26174;&#24335;&#31867;&#22411;&#36716;&#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 class="t-sdsc-nopad"><code><b>(</b></code> <span class="t-spar">&#31867;&#22411;&#21517;</span> <code><b>)</b></code> <span class="t-spar">&#34920;&#36798;&#24335;</span></td>
<td class="t-sdsc-nopad"></td>
<td class="t-sdsc-nopad"></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">&#31867;&#22411;&#21517;</span></td>
<td>-</td>
<td><span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">void</span></span></span> &#31867;&#22411;&#25110;&#20219;&#20309;<a href="c-language-types.html#.E7.B1.BB.E5.9E.8B.E7.BB.84.E5.88.AB">&#26631;&#37327;&#31867;&#22411;</a></td>
</tr>
<tr class="t-par">
<td><span class="t-spar">&#34920;&#36798;&#24335;</span></td>
<td>-</td>
<td>&#20219;&#20309;<a href="c-language-type.html#.E7.B1.BB.E5.9E.8B.E7.BB.84.E5.88.AB" class="mw-redirect">&#26631;&#37327;&#31867;&#22411;</a><a href="c-language-expressions.html">&#34920;&#36798;&#24335;</a>&#65288;&#38500;&#38750; <span class="t-spar">&#31867;&#22411;&#21517;</span>&#26159; <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">void</span></span></span> &#65292;&#27492;&#24773;&#20917;&#19979;&#23427;&#21487;&#20197;&#26159;&#20219;&#20309;&#34920;&#36798;&#24335;&#65289;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E8.A7.A3.E9.87.8A">&#35299;&#37322;</span></h3>
<p>&#33509; <span class="t-spar">&#31867;&#22411;&#21517;</span> &#26159; <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">void</span></span></span> &#65292;&#21017; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#20026;&#20854;&#21103;&#25928;&#24212;&#27714;&#20540;&#65292;&#32780;&#20854;&#36820;&#22238;&#20540;&#34987;&#33293;&#24323;&#65292;&#19982;&#21333;&#29420;&#23558; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#29992;&#20316;<a href="c-language-statements.html#.E8.A1.A8.E8.BE.BE.E5.BC.8F.E8.AF.AD.E5.8F.A5">&#34920;&#36798;&#24335;&#35821;&#21477;</a>&#26102;&#30456;&#21516;&#12290;</p>
<p>&#21542;&#21017;&#65292;&#33509; <span class="t-spar">&#31867;&#22411;&#21517;</span> &#24688;&#26159; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#30340;&#31867;&#22411;&#65292;&#21017;&#19981;&#20570;&#20219;&#20309;&#20107;&#65288;&#38500;&#38750;&#33509; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#25317;&#26377;&#28014;&#28857;&#31867;&#22411;&#65292;&#19988;&#23427;&#34920;&#31034;&#22823;&#20110;&#20854;&#33539;&#22260;&#21644;&#31934;&#24230;&#30340;&#20540;&mdash;&mdash;&#35265;&#21518;&#36848;&#65289;&#12290;</p>
<p>&#21542;&#21017;&#65292;&#36716;&#25442; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#30340;&#20540;&#34987;&#21040; <span class="t-spar">&#31867;&#22411;&#21517;</span> &#25152;&#25351;&#21517;&#30340;&#31867;&#22411;&#65292;&#22914;&#19979;&#65306;</p>
<p>&#20801;&#35768;&#27599;&#31181;<a href="c-language-conversion.html">&#22914;&#21516;&#36171;&#20540;&#30340;&#38544;&#24335;&#36716;&#25442;</a>&#12290;</p>
<p>&#21478;&#22806;&#36824;&#20801;&#35768;&#26174;&#24335;&#36716;&#25442;&#65292;&#20801;&#35768;&#19979;&#21015;&#36716;&#25442;&#35268;&#21017;&#65306;</p>
<ul>
<li>&#20219;&#20309;&#25972;&#25968;&#33021;&#34987;&#36716;&#22411;&#21040;&#20219;&#20309;&#25351;&#38024;&#31867;&#22411;&#12290;&#38500;&#20102;&#22914;&#21516; <span class="t-lc"><a href="c-types-NULL.html">NULL</a></span> &#30340;&#31354;&#25351;&#38024;&#24120;&#37327;&#65288;<a href="c-language-conversion.html">&#36825;&#19981;&#38656;&#35201;&#36716;&#22411;</a>&#65289;&#65292;&#32467;&#26524;&#26159;&#23454;&#29616;&#23450;&#20041;&#30340;&#65292;&#21487;&#33021;&#23545;&#40784;&#19981;&#20934;&#30830;&#65292;&#21487;&#33021;&#19981;&#25351;&#21521;&#25152;&#24341;&#29992;&#31867;&#22411;&#30340;&#23545;&#35937;&#65292;&#32780;&#19988;&#21487;&#33021;&#26159;&#19968;&#20010;<a href="c-language-object.html">&#38519;&#38449;&#34920;&#31034;</a>&#12290;</li>
<li>&#20219;&#20309;&#25351;&#38024;&#31867;&#22411;&#21487;&#20197;&#34987;&#36716;&#22411;&#21040;&#20219;&#20309;&#25972;&#25968;&#31867;&#22411;&#12290;&#32467;&#26524;&#26159;&#23454;&#29616;&#23450;&#20041;&#30340;&#65292;&#21363;&#20351;&#26159;&#23545;&#31354;&#25351;&#38024;&#20540;&#65288;&#23427;&#20204;&#19981;&#24517;&#24471;&#21040;&#38646;&#20540;&#65289;&#12290;&#33509;&#32467;&#26524;&#19981;&#33021;&#34987;&#34920;&#31034;&#25104;&#30446;&#26631;&#31867;&#22411;&#65292;&#21017;&#34892;&#20026;&#26410;&#23450;&#20041;&#65288;&#26080;&#31526;&#21495;&#25972;&#25968;&#22312;&#20174;&#25351;&#38024;&#36716;&#22411;&#30340;&#24773;&#20917;&#19979;&#19981;&#23454;&#29616;&#27169;&#31639;&#26415;&#65289;&#12290;</li>
<li>&#20219;&#20309;&#25351;&#21521;&#23545;&#35937;&#30340;&#25351;&#38024;&#33021;&#34987;&#36716;&#22411;&#25104;&#25351;&#21521;&#20219;&#20309;&#20854;&#20182;&#23545;&#35937;&#31867;&#22411;&#30340;&#25351;&#38024;&#12290;&#33509;&#20854;&#20540;&#26410;&#20026;&#30446;&#26631;&#31867;&#22411;&#27491;&#30830;&#23545;&#40784;&#65292;&#21017;&#34892;&#20026;&#26410;&#23450;&#20041;&#12290;&#21542;&#21017;&#65292;&#33509;&#20854;&#20540;&#36716;&#25442;&#22238;&#21407;&#31867;&#22411;&#65292;&#21017;&#23427;&#19982;&#21407;&#20540;&#27604;&#36739;&#30456;&#31561;&#12290;&#33509;&#25351;&#21521;&#23545;&#35937;&#25351;&#38024;&#34987;&#36716;&#22411;&#21040;&#25351;&#21521;&#20219;&#20309;&#23383;&#31526;&#31867;&#22411;&#30340;&#25351;&#38024;&#65292;&#21017;&#32467;&#26524;&#25351;&#21521;&#23545;&#35937;&#30340;&#26368;&#20302;&#23383;&#33410;&#65292;&#19988;&#33021;&#33258;&#22686;&#21040;&#30446;&#26631;&#31867;&#22411;&#30340; sizeof &#65288;&#25442;&#35328;&#20043;&#65292;&#21487;&#29992;&#20110;&#26816;&#39564;<a href="c-language-object.html">&#23545;&#35937;&#34920;&#31034;</a>&#65292;&#25110;&#36890;&#36807; <span class="t-lc"><a href="c-string-byte-memcpy.html">memcpy</a></span> &#25110; <span class="t-lc"><a href="c-string-byte-memmove.html">memmove</a></span> &#22797;&#21046;&#65289;&#12290;</li>
<li>&#20219;&#20309;&#25351;&#21521;&#20989;&#25968;&#30340;&#25351;&#38024;&#33021;&#34987;&#36716;&#22411;&#25104;&#25351;&#21521;&#20219;&#20309;&#20854;&#20182;&#20989;&#25968;&#31867;&#22411;&#30340;&#25351;&#38024;&#12290;&#33509;&#36716;&#25442;&#32467;&#26524;&#25351;&#38024;&#22238;&#21407;&#31867;&#22411;&#65292;&#21017;&#23427;&#19982;&#21407;&#20540;&#27604;&#36739;&#30456;&#31561;&#12290;&#33509;&#23558;&#36716;&#25442;&#25152;&#24471;&#25351;&#38024;&#29992;&#20316;&#20989;&#25968;&#35843;&#29992;&#65292;&#21017;&#34892;&#20026;&#26410;&#23450;&#20041;&#65288;&#38500;&#38750;&#20989;&#25968;&#31867;&#22411;<a href="c-language-types.html#.E5.85.BC.E5.AE.B9.E7.B1.BB.E5.9E.8B">&#20860;&#23481;</a>&#65289;&#12290;</li>
<li>&#22312;&#25351;&#38024;&#38388;&#36716;&#25442;&#65288;&#25351;&#21521;&#23545;&#35937;&#25110;&#25351;&#21521;&#20989;&#25968;&#30340;&#65289;&#26102;&#65292;&#33509;&#21407;&#20540;&#26159;&#20854;&#31867;&#22411;&#30340;&#31354;&#25351;&#38024;&#20540;&#65292;&#21017;&#32467;&#26524;&#26159;&#30446;&#26631;&#31867;&#22411;&#30340;&#27491;&#30830;&#31354;&#25351;&#38024;&#20540;&#12290;</li>
</ul>
<p>&#22312;&#20219;&#20309;&#22330;&#21512;&#65288;&#25191;&#34892;&#38544;&#24335;&#36716;&#25442;&#21644;&#21516;&#31867;&#22411;&#36716;&#22411;&#26102;&#65289;&#20013;&#65292;&#33509; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#19982; <span class="t-spar">&#31867;&#22411;&#21517;</span> &#26159;&#28014;&#28857;&#31867;&#22411;&#65292;&#19988; <span class="t-spar">&#34920;&#36798;&#24335;</span> &#34920;&#31034;&#22823;&#20110;&#20854;&#31867;&#22411;&#25152;&#25351;&#31034;&#30340;&#33539;&#22260;&#21644;&#31934;&#24230;&#65288;&#35265; <span class="t-lc"><a href="c-types-limits-FLT_EVAL_METHOD.html">FLT_EVAL_METHOD</a></span> &#65289;&#65292;&#21017;&#21093;&#38500;&#33539;&#22260;&#21644;&#31934;&#24230;&#20197;&#21305;&#37197;&#30446;&#26631;&#31867;&#22411;&#12290;</p>
<p>&#36716;&#22411;&#34920;&#36798;&#24335;&#30340;<a href="c-language-value_category.html">&#20540;&#31867;&#21035;</a>&#22987;&#32456;&#26159;&#38750;&#24038;&#20540;&#12290;</p>
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3">&#27880;&#35299;</span></h3>
<p>&#22240;&#20026; <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> &#21450; <a href="c-language-atomic.html"><code>_Atomic</code></a> &#38480;&#23450;&#31526;&#20165;&#23545;<a href="c-language-value_category.html">&#24038;&#20540;</a>&#26377;&#25928;&#65292;&#21040; cvr &#38480;&#23450;&#25110;&#21407;&#23376;&#31867;&#22411;&#30340;&#36716;&#22411;&#20934;&#30830;&#31561;&#20215;&#20110;&#21040;&#23545;&#24212;&#26080;&#26080;&#38480;&#23450;&#31867;&#22411;&#30340;&#36716;&#22411;&#12290;</p>
<p>&#36716;&#22411;&#21040; <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">void</span></span></span> &#22312;&#20196;&#32534;&#35793;&#22120;&#20851;&#20110;&#26410;&#20351;&#29992;&#32467;&#26524;&#30340;&#35686;&#21578;&#27785;&#40664;&#26102;&#26377;&#29992;&#12290;</p>
<p>&#19981;&#20801;&#35768;&#19981;&#21015;&#20110;&#27492;&#30340;&#36716;&#25442;&#12290;&#29305;&#21035;&#26159;&#65292;</p>
<ul>
<li>&#27809;&#26377;&#25351;&#38024;&#21644;&#28014;&#28857;&#31867;&#22411;&#38388;&#30340;&#36716;&#25442;</li>
<li>&#27809;&#26377;&#25351;&#21521;&#20989;&#25968;&#25351;&#38024;&#21644;&#25351;&#21521;&#23545;&#35937;&#25351;&#38024;&#65288;&#21547; <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">void</span><span class="sy2">*</span></span></span> &#65289;&#38388;&#30340;&#36716;&#25442;</li>
</ul>
<table class="t-rev-begin">
<tr class="t-rev t-since-c99">
<td>
<p>&#33509;&#23454;&#29616;&#25552;&#20379; <span class="t-lc"><a href="c-types-integer.html">intptr_t</a></span> &#19982;/&#25110; <span class="t-lc"><a href="c-types-integer.html">uintptr_t</a></span>&#65292;&#21017;&#20174;&#25351;&#21521;&#23545;&#35937;&#31867;&#22411;&#65288;&#21253;&#25324; <i>cv</i> <span class="t-c"><span class="mw-geshi c source-c"><span class="kw4">void</span></span></span>&#65289;&#30340;&#25351;&#38024;&#21040;&#36825;&#20123;&#31867;&#22411;&#30340;&#36716;&#22411;&#22987;&#32456;&#20026;&#33391;&#23450;&#20041;&#12290;&#28982;&#32780;&#36825;&#23545;&#20110;&#20989;&#25968;&#25351;&#38024;&#24182;&#19981;&#20445;&#35777;&#12290;</p>
</td>
<td><span class="t-mark-rev t-since-c99">(C99 &#36215;)</span></td>
</tr>
</table>
<p>&#27880;&#24847;&#20989;&#25968;&#25351;&#38024;&#19982;&#23545;&#35937;&#25351;&#38024;&#38388;&#30340;&#36716;&#25442;&#34987;&#35768;&#22810;&#32534;&#35793;&#22120;&#20316;&#20026;&#25193;&#23637;&#25509;&#21463;&#65292;&#24182;&#19988;&#20026; <a rel="nofollow" class="external text" href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/dlsym.html">POSIX <code>dlsym()</code> &#20989;&#25968;</a>&#30340;&#19968;&#20123;&#29992;&#27861;&#25152;&#26399;&#24453;&#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="kw4">int</span> main<span class="br0">(</span><span class="kw4">void</span><span class="br0">)</span>
<span class="br0">{</span>
<span class="co1">// &#26816;&#39564;&#23545;&#35937;&#34920;&#31034;&#26159;&#36716;&#22411;&#30340;&#21512;&#27861;&#20351;&#29992;</span>
<span class="kw4">double</span> d <span class="sy1">=</span> <span class="nu16">3.14</span><span class="sy4">;</span>
<a href="c-io-fprintf.html"><span class="kw851">printf</span></a><span class="br0">(</span><span class="st0">&quot;The double %.2f(%a) is: &quot;</span>, d, d<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">for</span><span class="br0">(</span><a href="c-types-size_t.html"><span class="kw100">size_t</span></a> n <span class="sy1">=</span> <span class="nu0">0</span><span class="sy4">;</span> n <span class="sy1">&lt;</span> <span class="kw4">sizeof</span> d<span class="sy4">;</span> <span class="sy2">++</span>n<span class="br0">)</span>
<a href="c-io-fprintf.html"><span class="kw851">printf</span></a><span class="br0">(</span><span class="st0">&quot;0x%02x &quot;</span>, <span class="br0">(</span><span class="br0">(</span><span class="kw4">unsigned</span> <span class="kw4">char</span><span class="sy2">*</span><span class="br0">)</span><span class="sy3">&amp;</span>d<span class="br0">)</span><span class="br0">[</span>n<span class="br0">]</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// edge cases</span>
<span class="kw1">struct</span> S <span class="br0">{</span><span class="kw4">int</span> x<span class="sy4">;</span><span class="br0">}</span> s<span class="sy4">;</span>
<span class="co1">// (struct S)s; // &#38169;&#35823;&#65307;&#38750;&#26631;&#37327;&#31867;&#22411;</span>
<span class="co1">// &#23613;&#31649;&#36716;&#22411;&#21040;&#30456;&#21516;&#31867;&#22411;&#20160;&#20040;&#37117;&#19981;&#20570;</span>
<span class="br0">(</span><span class="kw4">void</span><span class="br0">)</span>s<span class="sy4">;</span> <span class="co1">// &#36716;&#25442;&#20219;&#20309;&#31867;&#22411;&#21040; void &#37117; OK</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">The double 3.14(0x1.91eb851eb851fp+1) is: 0x1f 0x85 0xeb 0x51 0xb8 0x1e 0x09 0x40</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-17">
<ul>
<li>C17 &#26631;&#20934;&#65288;ISO/IEC 9899:2018&#65289;&#65306;</li>
</ul>
<dl>
<dd>
<ul>
<li>6.5.4 Cast operators (p: 65-66)</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.5.4 Cast operators (p: 91)</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.5.4 Cast operators (p: 81)</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.3.4 Cast operators</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>