【牛客网】—— 枚举(enum)所占内存大小

news/2024/5/18 23:39:24 标签: C语言, 枚举, 牛客网, 结构体内存对齐

这里我们先来看一道题
类的大小
这是牛客网上的一个题,我在计算这个类的大小时,对于enum枚举类型所占空间的大小有了一些困惑,通过查阅资料我了解到其实在C++标准文档中是这样说明的:“枚举类型的尺寸是以能够容纳最大枚举子的值的整数的尺寸”,同时标准中也说名了:枚举类型中的枚举子的值必须要能够用一个int类型表述”,也就是说,枚举类型的尺寸不能够超过int类型的尺寸,但是是不是必须和int类型具有相同的尺寸呢?上面的标准已经说得很清楚了,只要能够容纳最大的枚举子的值的整数就可以了。
所以其实可以说一个枚举类型所占空间的大小即为一个常数所占内存空间的大小,即一个int型所占内存空间的大小

这里我在vs2013里计算了一下一个枚举类型的大小

enum
{
	red,
	green,
	bule,
	yellow
}e;

int main()
{
	printf("%d\n",sizeof(e));
	return 0;
}

<a class=枚举类型的大小" />

了解了枚举类型大小之后,我们再来分析一下这道题,我们知道在计算类的大小时也需要考虑内存对齐的问题,(内存对齐问题可参考博文 https://blog.csdn.net/chenxiyuehh/article/details/87893211 )

类的大小
参考博文
https://blog.csdn.net/bulebin/article/details/54388735


http://www.niftyadmin.cn/n/1280864.html

相关文章

快速学习-电影推荐系统设计(统计推荐模块)

主要数据模型 统计推荐模块 历史热门电影统计 近期电影热门统计 电影平均评分统计 各类别Top10评分电影统计

【LeetCode】—— vector相关OJ题(上)

一、只出现一次的数LeetCode136题 1.1 题目描述 给定一个非空整数数组&#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 说明&#xff1a; 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗&#xff…

快速学习-电影推荐系统设计(离线推荐模块)

离线推荐模块 ALS推荐模型训练 计算用户推荐矩阵 计算电影相似度矩阵 存储电影相似度矩阵

【C语言】—— 柔性数组

一、柔性数组的定义 1、柔性数组的定义 在c99中提到&#xff0c;在一个结构体中&#xff0c;结构体的最后一个元素可以是一个未知大小的数组&#xff0c;这个就叫做柔性数组成员。 2、柔性数组表示 #include<stdio.h>struct S{int a;char arr[];//柔性数组}//有些编译…

模拟实现与字符串相关的函数(较全)

一、字符串拷贝函数strcpy //模拟实现strcpy,会将\0一起拷贝 char* my_strcpy(char* dest,char* str) {char* start dest;while (*str ! \0){*dest *str;}*dest *str;return start; }int main() {char str[20] "qqqqqqqq";my_strcpy(str, "hello");pr…

【C++】—— 模拟实现vector(源代码)

一、vector的介绍 1、vector是表示可变大小数组的序列容器。 2、就像数组一样&#xff0c;vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问&#xff0c;和数组一样高效。但是又不像数组&#xff0c;它的大小是可以动态改变的&#xff…

快速学习-电影推荐系统设计(实时推荐模块)

实时推荐模块 基于模型的实时推荐模块 推荐优先级计算 基于内容的推荐 混合推荐-分区混合

快速学习-Python综述

1. Python综述 1.1 python是什么 Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python的设计具有很强的可读性&#xff0c;相比其他语言经常使用英文关键字&#xff0c;其他语言的一些标点符号&#xff0c;它具有比其他语言更有特色语法结构。…