203 lines
16 KiB
HTML
203 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>C++ 关键词</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_keyword skin-cppreference2 action-view cpp-navbar">
|
|
<div id="cpp-content-base">
|
|
<div id="content"><a id="top"></a>
|
|
<h1 id="firstHeading" class="firstHeading">C++ 关键词</h1>
|
|
<div id="bodyContent">
|
|
<div id="contentSub"><span class="subpages">< <a href="cpp.html">cpp</a></span></div>
|
|
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
|
|
<p>这是 C++ 中的保留字列表。因为它们为语言所用,故这些关键词不可用于重定义或重载。</p>
|
|
<table class="wikitable">
|
|
<tr>
|
|
<td>
|
|
<p><a href="cpp-keyword-alignas.html"><code>alignas</code></a> <span class="t-mark-rev t-since-cxx11">(C++11 起)</span><br />
|
|
<a href="cpp-keyword-alignof.html"><code>alignof</code></a> <span class="t-mark-rev t-since-cxx11">(C++11 起)</span><br />
|
|
<a href="cpp-keyword-and.html"><code>and</code></a><br />
|
|
<a href="cpp-keyword-and_eq.html"><code>and_eq</code></a><br />
|
|
<a href="cpp-keyword-asm.html"><code>asm</code></a><br />
|
|
<a href="cpp-language-transactional_memory.html"><tt>atomic_cancel</tt></a> <span class="t-mark-rev t-since-tm-ts t-mark-ts">(TM TS)</span><br />
|
|
<a href="cpp-language-transactional_memory.html"><tt>atomic_commit</tt></a> <span class="t-mark-rev t-since-tm-ts t-mark-ts">(TM TS)</span><br />
|
|
<a href="cpp-language-transactional_memory.html"><tt>atomic_noexcept</tt></a> <span class="t-mark-rev t-since-tm-ts t-mark-ts">(TM TS)</span><br />
|
|
<a href="cpp-keyword-auto.html"><code>auto</code></a><span class="t-mark">(1)</span><br />
|
|
<a href="cpp-keyword-bitand.html"><code>bitand</code></a><br />
|
|
<a href="cpp-keyword-bitor.html"><code>bitor</code></a><br />
|
|
<a href="cpp-keyword-bool.html"><code>bool</code></a><br />
|
|
<a href="cpp-keyword-break.html"><code>break</code></a><br />
|
|
<a href="cpp-keyword-case.html"><code>case</code></a><br />
|
|
<a href="cpp-keyword-catch.html"><code>catch</code></a><br />
|
|
<a href="cpp-keyword-char.html"><code>char</code></a><br />
|
|
<a href="cpp-keyword-char8_t.html"><code>char8_t</code></a> <span class="t-mark-rev t-since-cxx20">(C++20 起)</span><br />
|
|
<a href="cpp-keyword-char16_t.html"><code>char16_t</code></a> <span class="t-mark-rev t-since-cxx11">(C++11 起)</span><br />
|
|
<a href="cpp-keyword-char32_t.html"><code>char32_t</code></a> <span class="t-mark-rev t-since-cxx11">(C++11 起)</span><br />
|
|
<a href="cpp-keyword-class.html"><code>class</code></a><span class="t-mark">(1)</span><br />
|
|
<a href="cpp-keyword-compl.html"><code>compl</code></a><br />
|
|
<a href="cpp-keyword-concept.html"><code>concept</code></a> <span class="t-mark-rev t-since-cxx20">(C++20 起)</span><br />
|
|
<a href="cpp-keyword-const.html"><code>const</code></a><br />
|
|
<a href="cpp-keyword-consteval.html"><code>consteval</code></a> <span class="t-mark-rev t-since-cxx20">(C++20 起)</span><br />
|
|
<a href="cpp-keyword-constexpr.html"><code>constexpr</code></a> <span class="t-mark-rev t-since-cxx11">(C++11 起)</span><br />
|
|
<a href="cpp-keyword-constinit.html"><code>constinit</code></a> <span class="t-mark-rev t-since-cxx20">(C++20 起)</span><br />
|
|
<a href="cpp-keyword-const_cast.html"><code>const_cast</code></a><br />
|
|
<a href="cpp-keyword-continue.html"><code>continue</code></a><br />
|
|
<a href="cpp-keyword-co_await.html"><code>co_await</code></a> <span class="t-mark-rev t-since-cxx20">(C++20 起)</span><br />
|
|
<a href="cpp-keyword-co_return.html"><code>co_return</code></a> <span class="t-mark-rev t-since-cxx20">(C++20 起)</span><br />
|
|
<a href="cpp-keyword-co_yield.html"><code>co_yield</code></a> <span class="t-mark-rev t-since-cxx20">(C++20 起)</span><br />
|
|
<a href="cpp-keyword-decltype.html"><code>decltype</code></a> <span class="t-mark-rev t-since-cxx11">(C++11 起)</span><br /></p>
|
|
</td>
|
|
<td>
|
|
<p><a href="cpp-keyword-default.html"><code>default</code></a><span class="t-mark">(1)</span><br />
|
|
<a href="cpp-keyword-delete.html"><code>delete</code></a><span class="t-mark">(1)</span><br />
|
|
<a href="cpp-keyword-do.html"><code>do</code></a><br />
|
|
<a href="cpp-keyword-double.html"><code>double</code></a><br />
|
|
<a href="cpp-keyword-dynamic_cast.html"><code>dynamic_cast</code></a><br />
|
|
<a href="cpp-keyword-else.html"><code>else</code></a><br />
|
|
<a href="cpp-keyword-enum.html"><code>enum</code></a><br />
|
|
<a href="cpp-keyword-explicit.html"><code>explicit</code></a><br />
|
|
<a href="cpp-keyword-export.html"><code>export</code></a><span class="t-mark">(1)</span><span class="t-mark">(3)</span><br />
|
|
<a href="cpp-keyword-extern.html"><code>extern</code></a><span class="t-mark">(1)</span><br />
|
|
<a href="cpp-keyword-false.html"><code>false</code></a><br />
|
|
<a href="cpp-keyword-float.html"><code>float</code></a><br />
|
|
<a href="cpp-keyword-for.html"><code>for</code></a><br />
|
|
<a href="cpp-keyword-friend.html"><code>friend</code></a><br />
|
|
<a href="cpp-keyword-goto.html"><code>goto</code></a><br />
|
|
<a href="cpp-keyword-if.html"><code>if</code></a><br />
|
|
<a href="cpp-keyword-inline.html"><code>inline</code></a><span class="t-mark">(1)</span><br />
|
|
<a href="cpp-keyword-int.html"><code>int</code></a><br />
|
|
<a href="cpp-keyword-long.html"><code>long</code></a><br />
|
|
<a href="cpp-keyword-mutable.html"><code>mutable</code></a><span class="t-mark">(1)</span><br />
|
|
<a href="cpp-keyword-namespace.html"><code>namespace</code></a><br />
|
|
<a href="cpp-keyword-new.html"><code>new</code></a><br />
|
|
<a href="cpp-keyword-noexcept.html"><code>noexcept</code></a> <span class="t-mark-rev t-since-cxx11">(C++11 起)</span><br />
|
|
<a href="cpp-keyword-not.html"><code>not</code></a><br />
|
|
<a href="cpp-keyword-not_eq.html"><code>not_eq</code></a><br />
|
|
<a href="cpp-keyword-nullptr.html"><code>nullptr</code></a> <span class="t-mark-rev t-since-cxx11">(C++11 起)</span><br />
|
|
<a href="cpp-keyword-operator.html"><code>operator</code></a><br />
|
|
<a href="cpp-keyword-or.html"><code>or</code></a><br />
|
|
<a href="cpp-keyword-or_eq.html"><code>or_eq</code></a><br />
|
|
<a href="cpp-keyword-private.html"><code>private</code></a><br />
|
|
<a href="cpp-keyword-protected.html"><code>protected</code></a><br />
|
|
<a href="cpp-keyword-public.html"><code>public</code></a><br />
|
|
<a href="cpp-keyword-reflexpr.html"><code>reflexpr</code></a> <span class="t-mark-rev t-since-reflection-ts t-mark-ts">(反射 TS)</span><br /></p>
|
|
</td>
|
|
<td>
|
|
<p><a href="cpp-keyword-register.html"><code>register</code></a><span class="t-mark">(2)</span><br />
|
|
<a href="cpp-keyword-reinterpret_cast.html"><code>reinterpret_cast</code></a><br />
|
|
<a href="cpp-keyword-requires.html"><code>requires</code></a> <span class="t-mark-rev t-since-cxx20">(C++20 起)</span><br />
|
|
<a href="cpp-keyword-return.html"><code>return</code></a><br />
|
|
<a href="cpp-keyword-short.html"><code>short</code></a><br />
|
|
<a href="cpp-keyword-signed.html"><code>signed</code></a><br />
|
|
<a href="cpp-keyword-sizeof.html"><code>sizeof</code></a><span class="t-mark">(1)</span><br />
|
|
<a href="cpp-keyword-static.html"><code>static</code></a><br />
|
|
<a href="cpp-keyword-static_assert.html"><code>static_assert</code></a> <span class="t-mark-rev t-since-cxx11">(C++11 起)</span><br />
|
|
<a href="cpp-keyword-static_cast.html"><code>static_cast</code></a><br />
|
|
<a href="cpp-keyword-struct.html"><code>struct</code></a><span class="t-mark">(1)</span><br />
|
|
<a href="cpp-keyword-switch.html"><code>switch</code></a><br />
|
|
<a href="cpp-language-transactional_memory.html"><tt>synchronized</tt></a> <span class="t-mark-rev t-since-tm-ts t-mark-ts">(TM TS)</span><br />
|
|
<a href="cpp-keyword-template.html"><code>template</code></a><br />
|
|
<a href="cpp-keyword-this.html"><code>this</code></a><br />
|
|
<a href="cpp-keyword-thread_local.html"><code>thread_local</code></a> <span class="t-mark-rev t-since-cxx11">(C++11 起)</span><br />
|
|
<a href="cpp-keyword-throw.html"><code>throw</code></a><br />
|
|
<a href="cpp-keyword-true.html"><code>true</code></a><br />
|
|
<a href="cpp-keyword-try.html"><code>try</code></a><br />
|
|
<a href="cpp-keyword-typedef.html"><code>typedef</code></a><br />
|
|
<a href="cpp-keyword-typeid.html"><code>typeid</code></a><br />
|
|
<a href="cpp-keyword-typename.html"><code>typename</code></a><br />
|
|
<a href="cpp-keyword-union.html"><code>union</code></a><br />
|
|
<a href="cpp-keyword-unsigned.html"><code>unsigned</code></a><br />
|
|
<a href="cpp-keyword-using.html"><code>using</code></a><span class="t-mark">(1)</span><br />
|
|
<a href="cpp-keyword-virtual.html"><code>virtual</code></a><br />
|
|
<a href="cpp-keyword-void.html"><code>void</code></a><br />
|
|
<a href="cpp-keyword-volatile.html"><code>volatile</code></a><br />
|
|
<a href="cpp-keyword-wchar_t.html"><code>wchar_t</code></a><br />
|
|
<a href="cpp-keyword-while.html"><code>while</code></a><br />
|
|
<a href="cpp-keyword-xor.html"><code>xor</code></a><br />
|
|
<a href="cpp-keyword-xor_eq.html"><code>xor_eq</code></a></p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<ul>
|
|
<li>(1) - C++11 中含义改变或添加新含义。</li>
|
|
<li>(2) - C++17 中含义改变。</li>
|
|
<li>(3) - C++20 中含义改变。</li>
|
|
</ul>
|
|
<p>注意 <a href="cpp-keyword-and.html"><code>and</code></a>、<a href="cpp-keyword-bitor.html"><code>bitor</code></a>、<a href="cpp-keyword-or.html"><code>or</code></a>、<a href="cpp-keyword-xor.html"><code>xor</code></a>、<a href="cpp-keyword-compl.html"><code>compl</code></a>、<a href="cpp-keyword-bitand.html"><code>bitand</code></a>、<a href="cpp-keyword-and_eq.html"><code>and_eq</code></a>、<a href="cpp-keyword-or_eq.html"><code>or_eq</code></a>、<a href="cpp-keyword-xor_eq.html"><code>xor_eq</code></a>、<a href="cpp-keyword-not.html"><code>not</code></a> 及 <a href="cpp-keyword-not_eq.html"><code>not_eq</code></a>(还有双标符 <code><%</code>、<code>%></code>、<code><:</code>、<code>:></code>、<code>%:</code> 及 <code>%:%:</code>)提供<a href="cpp-language-operator_alternative.html">标准记号的代用表示方法</a>。</p>
|
|
<p>除了关键词外,还有<i>拥有特殊含义的标识符</i>,它们可用作对象或函数的名字,但在某些语境拥有特殊含义。</p>
|
|
<table class="wikitable">
|
|
<tr>
|
|
<td>
|
|
<p><a href="cpp-language-override.html"><tt>override</tt></a> <span class="t-mark-rev t-since-cxx11">(C++11)</span><br />
|
|
<a href="cpp-language-final.html"><tt>final</tt></a> <span class="t-mark-rev t-since-cxx11">(C++11)</span><br />
|
|
<a href="cpp-keyword-import.html"><code>import</code></a> <span class="t-mark-rev t-since-cxx20">(C++20)</span><br />
|
|
<a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/keyword/module&action=edit&redlink=1" class="new" title="cpp/keyword/module(页面不存在)"><code>module</code></a> <span class="t-mark-rev t-since-cxx20">(C++20)</span><br />
|
|
<a href="cpp-language-transactional_memory.html"><tt>transaction_safe</tt></a> <span class="t-mark-rev t-since-tm-ts t-mark-ts">(TM TS)</span><br />
|
|
<a href="cpp-language-transactional_memory.html"><tt>transaction_safe_dynamic</tt></a> <span class="t-mark-rev t-since-tm-ts t-mark-ts">(TM TS)</span></p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p>还有,在任何位置含双下划线 __ 的所有<a href="cpp-language-identifiers.html">标识符</a>,和以一个下划线后随一个大写字母开始的所有标识符,都始终受保留,而所有以单下划线开始的标识符,保留用作全局命名空间中的名称。更多细节见<a href="cpp-language-identifiers.html">标识符</a>。</p>
|
|
<p>命名空间 <code>std</code> 用于放置标准 C++ 库中的名称。关于向它添加名称的规则,见<a href="cpp-language-extending_std.html">扩充命名空间 std</a> 。</p>
|
|
<table class="t-rev-begin">
|
|
<tr class="t-rev t-since-cxx11">
|
|
<td>
|
|
<p>名称 <code>posix</code> 保留作为未来的顶级命名空间。若程序于该命名空间声明或定义任何内容,则行为未定义。</p>
|
|
</td>
|
|
<td><span class="t-mark-rev t-since-cxx11">(C++11 起)</span></td>
|
|
</tr>
|
|
</table>
|
|
<p><a href="cpp-preprocessor.html">预处理器</a>在预处理指令的语境中识别下列记号:</p>
|
|
<table class="wikitable">
|
|
<tr>
|
|
<td>
|
|
<p><a href="cpp-preprocessor-conditional.html"><tt>if</tt></a><br />
|
|
<a href="cpp-preprocessor-conditional.html"><tt>elif</tt></a><br />
|
|
<a href="cpp-preprocessor-conditional.html"><tt>else</tt></a><br />
|
|
<a href="cpp-preprocessor-conditional.html"><tt>endif</tt></a><br /></p>
|
|
</td>
|
|
<td>
|
|
<p><a href="cpp-preprocessor-conditional.html"><tt>ifdef</tt></a><br />
|
|
<a href="cpp-preprocessor-conditional.html"><tt>ifndef</tt></a><br />
|
|
<a href="cpp-preprocessor-replace.html"><tt>define</tt></a><br />
|
|
<a href="cpp-preprocessor-replace.html"><tt>undef</tt></a><br /></p>
|
|
</td>
|
|
<td>
|
|
<p><a href="cpp-preprocessor-include.html"><tt>include</tt></a><br />
|
|
<a href="cpp-preprocessor-line.html"><tt>line</tt></a><br />
|
|
<a href="cpp-preprocessor-error.html"><tt>error</tt></a><br />
|
|
<a href="cpp-preprocessor-impl.html"><tt>pragma</tt></a><br /></p>
|
|
</td>
|
|
<td>
|
|
<p><a href="cpp-preprocessor-conditional.html"><tt>defined</tt></a><br />
|
|
<a href="cpp-feature_test.html"><tt>__has_include</tt></a> <span class="t-mark-rev t-since-cxx17">(C++17 起)</span><br />
|
|
<a href="cpp-feature_test.html"><tt>__has_cpp_attribute</tt></a> <span class="t-mark-rev t-since-cxx20">(C++20 起)</span></p>
|
|
</td>
|
|
<td>
|
|
<p><a href="cpp-keyword-export.html"><code>export</code></a> <span class="t-mark-rev t-since-cxx20">(C++20)</span><br />
|
|
<a href="cpp-keyword-import.html"><code>import</code></a> <span class="t-mark-rev t-since-cxx20">(C++20)</span><br />
|
|
<a href="https://zh.cppreference.com/mwiki/index.php?title=cpp/keyword/module&action=edit&redlink=1" class="new" title="cpp/keyword/module(页面不存在)"><code>module</code></a> <span class="t-mark-rev t-since-cxx20">(C++20)</span></p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p>预处理器在预处理指令的语境<i>之外</i>识别下列记号:</p>
|
|
<table class="wikitable">
|
|
<tr>
|
|
<td>
|
|
<p><a href="cpp-preprocessor-impl.html"><tt>_Pragma</tt></a><span class="t-mark-rev t-since-cxx11">(C++11 起)</span></p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">参阅</span></h3>
|
|
<table class="t-dsc-begin"></table>
|
|
</div>
|
|
<div class="visualClear"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|