C语言中枚举的大小

2024-04-15

我如何知道枚举的大小Days?它会等于7*4(sizeof(int)) = 28 ??
The printf()这给了我价值4,怎么解释呢?

enum Days            
{
    saturday,       
    sunday ,    
    monday ,       
    tuesday,
    wednesday,     
    thursday,
    friday
} TheDay;
printf("%d", sizeof(enum Days));

我们也可以将其用作 (enum Days)(0),这类似于整数数组。如果大小等于 4 那么如何解释这种数组的行为?


在 C 中,所有枚举大多数时候都是整数类型int,这解释了为什么sizeof(Days) == 4为你。

要知道一个值中有多少个enum你可以这样做:

enum Days            
{
    saturday,
    sunday,
    monday,
    tuesday,
    wednesday,
    thursday,
    friday,
    NUM_DAYS
};

Then NUM_DAYS将是枚举的数量Days.

请注意,如果更改枚举的值,这将不起作用,例如:

enum Foo
{
    bar = 5,
    NUM_FOO
};

在上面的枚举中,NUM_FOO6.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C语言中枚举的大小 的相关文章

随机推荐

  • 。 ObjectStateManager 中已存在具有相同键的对象ObjectStateManager 无法跟踪具有相同键的多个对象

    我试图简单地更新实体对象 然后收到此错误 所有对我所做的错误的谷歌搜索都让我得到了复杂的解释 任何人都可以简单地说一下吗 我正在研究这个简单的教程 http aspalliance com 1919 ASPNET 40 and the En
  • Doxygen 和 Objective-C 类别

    尽管 Doxygen 的最新版本声称可以更好地处理 Objective C 类别 http www doxygen nl manual changelog html 它似乎仍然对我的源代码中的类别感到窒息 我想知道是否有人已经让它正确地记录
  • 使用 Moq 模拟单元测试的异步方法

    我正在测试一种创建 Web 的服务方法API称呼 使用正常的HttpClient如果我还在本地运行 Web 服务 位于解决方案中的另一个项目中 则可以很好地进行单元测试 但是 当我签入更改时 构建服务器将无法访问 Web 服务 因此测试将失
  • 如何在违反唯一约束时返回 Postgres 中的原始行

    在 Postgres 中 如果您尝试插入具有唯一索引的值 您将看到以下内容 duplicate key value violates unique constraint testing email key DETAIL Key email
  • Spring MVC:复杂对象作为 GET @RequestParam

    假设我有一个页面列出表上的对象 并且我需要放置一个表单来过滤表 过滤器作为 Ajax GET 发送到如下 URL 而不是在我的控制器上有很多参数 例如 RequestMapping value action public ResponseB
  • 如果另一列中有匹配的单元格,则 Excel 公式从另一列返回值[重复]

    这个问题在这里已经有答案了 我有两列 如下所示 ID Qty FW01 20 AW08 100 FW01 30 FW01 40 AW55 60 我需要公式在列 ID 中搜索并查找此列中的所有相似单元格 并返回 Qty 列中与此 ID 匹配的
  • 下载 webroot 之外的文件

    好的 首先道歉 因为我意识到这是一个之前已经讨论过很多次的主题 相信我 我知道 我已经阅读了之前的所有问题和答案 但仍然无法使其发挥作用 我有一个包含可下载文件的文件夹 出于安全目的 我将此文件放置在 Webroot 之外 然而 尽管我尽了
  • C++ std::set 更新很乏味:我无法就地更改元素

    我发现更新操作std set乏味 因为没有这样的 API参考参数 http en cppreference com w cpp container set 所以我目前所做的是这样的 find element in set by iterat
  • 如何构建没有声音空安全的APK

    我可以在手机上以发布模式运行应用程序并传递标志 no sound null safety release 但 两者都不flutter build apk enable experiment non nullable nor flutter
  • 如何在 github 上查看整个代码库?

    我想查看 GitHub 上 git 存储库的单个分支中的所有代码 我是一名教授 代码是学生论文的一部分 任何单个提交都只会影响代码的一小部分 如何执行审查 使我能够对任何提交的所有代码进行逐行注释 我相信这个问题与如何制作 github P
  • Symfony2 生产时错误 500 而不是 404

    在我的 Symfony2 项目中 我进入了开发模式正确的 404 异常屏幕 但在生产模式下 我遇到了空白屏幕 HTTP 状态代码为 500 而不是 404 我正在使用位于的自定义错误模板app Resources TwigBundle vi
  • 从 youtube v3 API 获取实际配额限制

    我想从 youtube api 获取我的实际配额限制 有这种可能吗 当我打开这个页面时 我看到了我的极限 但是我怎样才能得到这个呢 不存在此类历史配额使用情况 API 您应该按照以下建议避免配额问题https youtube eng goo
  • AS3 for ios:如何序列化数组然后保存它

    我有一个多维数组 我想序列化它 然后使用共享对象保存它 我尝试了很多事情 但每次都会出现问题 JSON 不能有类型 ByteArray 结果不是 String 那么 SharedObject 不想保存它 共享对象可能不是解决方案的一部分 所
  • 为什么 XPATH count 函数返回 double 而不是 int?

    以下代码片段产生一个无效转换异常 static int XPathCount var doc new XmlDocument doc LoadXml
  • 稀疏矩阵上的 einsum

    看来是numpy的einsum功能不适用于scipy sparse矩阵 有没有其他方法可以做这些事情einsum可以用稀疏矩阵吗 回应 eickenberg 的回答 我想要的特定 einsum 是numpy einsum ki kj gt
  • 使用/从 Springfox 迁移到 springdoc-openapi 有什么优势吗?

    为了在 SpringBoot 2 7 中启用 Swagger 选择 springdoc openapi 相对于 Springfox 的优点 缺点是什么 这可能被认为是基于意见的 但实际上有事实支持使用 springdoc 而不是 Sprin
  • Chrome 61 的本地存储

    从 Chrome 61 开始 添加到本地阶段的任何项目似乎不再在本地配置文件中创建为物理文件 之前运行命令 localStorage setItem key value 将创建一个与该网站相对应的 SQLite 文件 localappdat
  • 自动重定向到干净的网址

    我如何在 php 中自动将网站从脏网址重定向到干净网址 例如 http www mysite com page page1 action action1 to http www mysite com page1 action1 您必须检查它
  • ios 谷歌地图 准确度

    我可以使用谷歌地图显示用户当前位置以及到达他的路线 问题 用户位置大多数时候都在路边 我不能把这样的应用程序放在Appstore中 它会得到不好的评论 我检查了 IOS 的 google sdk 是否有任何准确性的属性 喜欢 self go
  • C语言中枚举的大小

    我如何知道枚举的大小Days 它会等于7 4 sizeof int 28 The printf 这给了我价值4 怎么解释呢 enum Days saturday sunday monday tuesday wednesday thursda