我是靠谱客的博主 痴情香氛,最近开发中收集的这篇文章主要介绍enum 的范围与size,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

一、enum的取值范围
 C++标准规定超出枚举类型表示范围的赋值结果是undefined的。
 enum的取值范围和 int 的范围并不是直接一致的。计算enum的取值范围,可以按如下方式操作:
 1、不考虑负数:获取enum中的最大值,根据这个最大值所具有的位数,可以计算enum的表示范围。
 举个例子:enum test{ a=2, b=4 };最大值为4,二进制表示为100,3bits,因为3bits表示的范围是0~7,所以test的取值范围就是[0, 7];
 2、考虑负数情况。负数情况下,需要多一位的符号位,其本质还是一样的。
 比如:enum test{ a=-2, b=4 }; 绝对值最大值为4,需要3bits,由于4不是负数,还需要增加一位符号位,4bits,其表示范围就是1000~0111,所以test的取值范围就是[-8, 7]。
 如果是enum test{ a=-4, b= }; 则仅仅3bits就足够了,因为 100 就是 -4。

二、enum的size
 C++标准规定,enum的size只要能够容纳定义时刻的所有bits就可以了,具体取什么值,由编译器决定。比如enum test{ a=2, b=4 };仅需要3bits,那么可以取1B,也可以取4B,由编译器自己决定。VC中是固定取4B空间。

最后

以上就是痴情香氛为你收集整理的enum 的范围与size的全部内容,希望文章能够帮你解决enum 的范围与size所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部