📄 00370.html
字号:
在枚举可表示范围之外的任何枚举编码都是错误的。如果任何一个枚举成员被定义成不同尺寸的常量,那么会产生一个语法错误。 </p><div class="Element170">
<a href="#" onclick="CopyElementToClipboard('code00058');">Copy Code</a></div>
<div class="Element13"><div class="Element12" id="code00058"><pre class="Element12"><span style="color: #008000">// 正确的声明 – bronze和gold是无尺寸的</span>
<span style="color: #0000FF">enum bit</span> <span style="color: #800080">[</span><span style="color: #FF0000">3</span><span style="color: #800080">:</span><span style="color: #FF0000">0</span><span style="color: #800080">] {</span>bronze<span style="color: #800080">='</span><span style="color: #0000FF">h</span><span style="color: #FF0000">3</span><span style="color: #800080">,</span> silver<span style="color: #800080">,</span> gold<span style="color: #800080">='</span><span style="color: #0000FF">h</span><span style="color: #FF0000">5</span><span style="color: #800080">}</span> meda14<span style="color: #800080">;</span>
<span style="color: #008000">// 正确的声明 – bronze和gold的尺寸是冗余的</span>
<span style="color: #0000FF">enum bit</span> <span style="color: #800080">[</span><span style="color: #FF0000">3</span><span style="color: #800080">:</span><span style="color: #FF0000">0</span><span style="color: #800080">] {</span>bronze<span style="color: #800080">=</span><span style="color: #FF0000">4</span><span style="color: #800080">'</span><span style="color: #0000FF">h</span><span style="color: #FF0000">3</span><span style="color: #800080">,</span> silver<span style="color: #800080">,</span> gold<span style="color: #800080">=</span><span style="color: #FF0000">4</span><span style="color: #800080">'</span><span style="color: #0000FF">h</span><span style="color: #FF0000">5</span><span style="color: #800080">}</span> meda14<span style="color: #800080">;</span>
<span style="color: #008000">// bronze和gold成员的声明是错误的</span>
<span style="color: #0000FF">enum bit</span> <span style="color: #800080">[</span><span style="color: #FF0000">3</span><span style="color: #800080">:</span><span style="color: #FF0000">0</span><span style="color: #800080">] {</span>bronze<span style="color: #800080">=</span><span style="color: #FF0000">5</span><span style="color: #800080">'</span><span style="color: #0000FF">h</span><span style="color: #FF0000">13</span><span style="color: #800080">,</span> silver<span style="color: #800080">,</span> gold<span style="color: #800080">=</span><span style="color: #FF0000">3</span><span style="color: #800080">'</span><span style="color: #0000FF">h</span><span style="color: #FF0000">5</span><span style="color: #800080">}</span> meda14<span style="color: #800080">;</span>
<span style="color: #008000">// c的声明是错误的,要求至少两位</span>
<span style="color: #0000FF">enum bit </span><span style="color: #800080">[</span><span style="color: #FF0000">0</span><span style="color: #800080">:</span><span style="color: #FF0000">0</span><span style="color: #800080">] {</span>a<span style="color: #800080">,</span> b<span style="color: #800080">,</span> c<span style="color: #800080">}</span> alphabet<span style="color: #800080">;</span></pre></div></div>
<p class="Element10">
赋值中的枚举类型、作为参数的枚举类型以及操作符中的枚举类型的类型检查在<a href="00373.html" target="topic">3.10.3节</a>中描述。像C一样,枚举类型中没有文本的过载,因此,<i>medal</i>和<i>medal4</i>不能够在相同的范围内定义,因为它们包含了相同的名字。</p></div>
</div>
<a name="Group"></a><div class="Element14">
<a onclick="toggleVisibilityStored('Group');" class="a_Element14"><img src="sectionminus.png" border="0" alt="" title="" id="imgGroup">Group</a></div>
<div id="divGroup">
<div class="Element11">
<div class="Element10">
<p class="Element10">
<a href="00863.html" target="topic">第三章 数据类型</a></p></div>
</div>
</div>
<a name="主题"></a><div class="Element14">
<a onclick="toggleVisibilityStored('主题');" class="a_Element14"><img src="sectionminus.png" border="0" alt="" title="" id="img主题">主题</a></div>
<div id="div主题">
<div class="Element11">
<div class="Element10">
<div class="Element212">
<div class="TableDiv">
<table cellspacing="0" class="Table0">
<tr>
<td class="Element200" valign="top" width="50%">
<div class="Element201">
主题 </div></td><td class="Element204" valign="top" width="50%">
<div class="Element205">
描述 </div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00371.html" target="topic">3.10.1 将新的数据类型定义成枚举类型</a> </div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
我们可以为枚举类型指定一个类型名,这样相同的类型可以在许多地方使用。 </div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00372.html" target="topic">3.10.2 枚举类型的排列</a> </div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
枚举元素的排列可以使用下列的语法自动指定。<br> </p><p class="Element207" style="text-align: center">
<strong>表格 3-3:枚举元素的排列</strong> </p><p class="Element207">
</div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00373.html" target="topic">3.10.3 类型检查</a> </div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
SystemVerilog枚举类型是一种强类型,因此,一个<span style="color: #0000FF">enum</span>类型的变量不能被直接赋值为一个位于枚举集范围之外的值,除非使用强制类型转换或者除非这个枚举变量是一个联合体的成员。这种强大的类型检查能够防止用户偶然地将枚举类型变量赋值为不存在的值。这个限制仅仅适用于被显式地声明成一个类型的枚举。枚举值仍然可以在表达式中作为常量使用,并且运算结果也可以赋值到任何一个具有兼容的<span style="color: #0000FF">integral</span>类型的变量。<br><br>无论是枚举名还是它们的整数值都必须是唯一的。它们的值可以被设置为任意<span style="color: #0000FF">integral</span>常量值,或者从初始值<span style="color: #FF0000">0</span>开始递增。如果将两个值设置到相同的枚举名,或者设置的值与递增值冲突都是错误的。<br><br>枚举变量在赋值、传递和关系操作符中进行类型检查。枚举变量可以自动转换成<span style="color: #0000FF">integral</span>值,然而,将任何表达式赋值到枚举变量均要求一个显式的强制类型转换。例如: </div></td></tr><tr>
<td class="Element202" valign="top" width="50%">
<div class="Element203">
<a href="00374.html" target="topic">3.10.4 数值表达式中的枚举类型</a> </div></td><td class="Element206" valign="top" width="50%">
<div class="Element207">
枚举变量的元素可以使用在数值表达式中。表达式中使用的值是与枚举值相关的数值。例如: </div></td></tr></table></div></div>
</div>
</div>
</div>
<a name="Links"></a><div class="Element14">
<a onclick="toggleVisibilityStored('链接');" class="a_Element14"><img src="sectionminus.png" border="0" alt="" title="" id="img链接">链接</a></div>
<div id="div链接">
<div class="Element11">
<div class="Element10">
<a href="00863.html" target="topic">第三章 数据类型</a>, <a href="00898.html" target="topic">主题</a></div>
</div>
</div>
</div>
<!-- End Page Content -->
<!-- Begin Page Footer -->
<hr width="98%" align="center" size="1" color="#CCCCCC" />
<table align="center" cellpadding="0" cellspacing="0" border="0">
<tbody>
<tr height="10">
<td></td>
</tr>
<tr align="center">
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-5266859600380184";
google_ad_width = 468;
google_ad_height = 60;
google_ad_format = "468x60_as";
google_ad_type = "text_image";
google_ad_channel ="";
google_page_url = document.location;
//--></script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</td>
</tr>
<tr height="15">
<td></td>
</tr>
<tr align="center">
<td>
<font size=2>除非特别声明,原文版权归作者所有,如有转摘请注明原作者以及译者(<a href="http://www.fpgatech.net/" target="_blank">FPGA技术网</a>)信息。<br />
如果您对本主题有何建议或意见,请登陆<a href="http://www.fpgatech.net/forum/forumdisplay.php?fid=18" target="_blank">FPGA开发者家园</a>提交,您的参与是我们前进的动力。</font>
<script language="javascript" type="text/javascript" src="http://js.users.51.la/195685.js"></script>
<noscript><a href="http://www.51.la/?195685" target="_blank"><img alt="我要啦免费统计" src="http://img.users.51.la/195685.asp" style="border:none" /></a></noscript>
</td>
</tr>
</tbody>
</table>
<!-- End Page Footer -->
</div>
</div>
<!-- End Client Area -->
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -