enum与typedef enum的用法

2023-11-20

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站:https://www.captainai.net/db

一,两者的用法

       枚举类型定义用关键字enum标识,形式为:
enum 标识符
{

      枚举数据表

};
枚举数据(枚举常量)是一些特定的标识符,标识符代表什么含义,完全由程序员决定。数据枚举的顺序规定了枚举数据的序号,从0开始,依次递增。
enum status
{

     copy,

     delete

};
枚举类型status仅有两个数据,一个是copy,一个是delete,序号为0、1,代表复制与删除。
enum status
{

     copy=6,

     delete

};
则copy的序号为6,delete的序号为7。
      enum用来定义一系列宏定义常量区别用,相当于一系列的#define xx xx,当然它后面的标识符也可当作一个类型标识符;typedef  enum则是用来定义一个数据类型,那么该类型的变量值只能在enum定义的范围内取。两者在这点上是没有差别的。

二,一些说明

     用enum定义的类型,只能在它的值域范围内取。比如:

#include "stdafx.h"

enum led_type
{
     led_off = 0,
     led_half = 127,
     led_on = 255,
};

void crake(led_type xx)
{
     printf("%d /n",xx);
}
int _tmain()
{
     crake(0);
     crake(22);
     crake(333);

     return 0;
}

编译时程序都会报错:error C2664: 'crake' : cannot convert parameter 1 from 'int' to 'led_type'。尽管enum的类型值仍然是整形,但并不意味着它可以接受范围外的整型数。(关于此问题,在Linux中,由别人验证是可以编译通过的。因为两者的C编译法则有差别)

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

enum与typedef enum的用法 的相关文章

  • 为什么在 C++ 中声明枚举时使用 typedef?

    我已经很多年没有写过任何 C 了 现在我正试图重新开始 然后我遇到了这个并考虑放弃 typedef enum TokenType blah1 0x00000000 blah2 0X01000000 blah3 0X02000000 Toke
  • 具有多个谓词的 C++11 算法

    功能如std find if来自algorithmheader 确实很有用 但对我来说 一个严重的限制是我只能为每次调用使用 1 个谓词count if 例如给定一个像这样的容器std vector我想同时应用相同的迭代find if 多个
  • MSMQ接收和删除

    是否有任何选项可以在读取消息后将其从 MSMQ 中删除 比如 接收 删除可以作为原子操作运行吗 听起来您想查看下一条消息 然后在处理完成后接收它 Message message Queue Peek Queue ReceiveById me
  • 如何查明 .exe 是否正在 C++ 中运行?

    给定进程名称 例如 程序 exe C 标准库没有这样的支持 您需要一个操作系统 API 来执行此操作 如果这是 Windows 那么您将使用 CreateToolhelp32Snapshot 然后使用 Process32First 和 Pr
  • C# Winforms Designer 无法打开,因为它无法在同一程序集中找到类型

    我收到以下错误 找不到类型 My Special UserControl 请确保引用包含此类型的程序集 如果此类型是您的开发项目的一部分 请确保已使用当前平台或任何 CPU 的设置成功构建该项目 但没有任何意义的是My Special Us
  • 关闭整数的最右边设置位

    我只需要关闭最右边的设置位即可 我的方法是找到最右边位的位置 然后离开该位 我编写这段代码是为了这样做 int POS int n int p 0 while n if n 2 0 p else break n n 2 return p i
  • 为什么 std::function 不是有效的模板参数,而函数指针却是?

    我已经定义了名为的类模板CallBackAtInit其唯一目的是在初始化时调用函数 构造函数 该函数在模板参数中指定 问题是模板不接受std function作为参数 但它们接受函数指针 为什么 这是我的代码 include
  • “没有合适的默认构造函数可用”——为什么会调用默认构造函数?

    我已经查看了与此相关的其他一些问题 但我不明白为什么在我的情况下甚至应该调用默认构造函数 我可以只提供一个默认构造函数 但我想了解它为什么这样做以及它会产生什么影响 error C2512 CubeGeometry no appropria
  • 如何在新窗口中打开图像或pdf文件?

    我有一个 gridview 它包含文件名和文件路径 图像和 pdf 格式文件 其中我使用了模板字段 在该字段下放置了 1 个图像按钮 单击该图像按钮 即 查看 按钮 时 我想在新窗口中打开所选文件 这是我的代码 protected void
  • 将 2 个字节转换为整数

    我收到一个 2 个字节的端口号 最低有效字节在前 我想将其转换为整数 以便我可以使用它 我做了这个 char buf 2 Where the received bytes are char port 2 port 0 buf 1 port
  • MSChart 控件中的自定义 X/Y 网格线

    我有一个带有简单 2D 折线图的 C Windows 窗体 我想向其中添加自定义 X 或 Y 轴标记 并绘制自定义网格线 例如 以突出显示的颜色 虚线 我查看了 customLabels 属性 但这似乎覆盖了我仍然想显示的默认网格 这是为了
  • 在 C++ 代码 gdb 中回溯指针

    我在运行 C 应用程序时遇到段错误 在 gdb 中 它显示我的一个指针位置已损坏 但我在应用程序期间创建了 10 万个这样的对象指针 我怎样才能看到导致崩溃的一个 我可以在 bt 命令中执行任何操作来查看该指针的生命周期吗 谢谢 鲁奇 据我
  • WinForms - 加载表单时如何使用 PaintEventArgs 运行函数?

    我试图理解图形 在 Graphics FromImage 文档中 它有这样的示例 private void FromImageImage PaintEventArgs e Create image Image imageFile Image
  • 测验;这个编译了吗?如果是的话它会返回什么(我知道答案)

    我最近发现这个错字 if name find string npos 显然开发者的意思是输入 if name find string npos 但令我惊讶的是发现错误甚至编译 Wall Werror 没有尝试过 pedantic 那么 咖啡
  • 在 mvc4 中创建通用 mvc 视图

    我以前也提过类似的问题 没有得到答案 如何创建一个通用的 mvc4 视图 该视图可以显示传递给它的模型列表或单个模型 模型可以是个人 组织或团体 无论传递给它的是什么 如果您正在寻找类似的东西 model MyViewModel
  • 当 Verb="runas" 时设置 ProcessStartInfo.EnvironmentVariables

    我正在开发一个 C 应用程序 我需要创建变量并将其传递给新进程 我正在使用ProcessStartInfo EnvironmentVariables 新进程必须提升运行 因此我使用 Verb runas var startInfo new
  • 初始化列表在 VC10 中不起作用

    我在 VC 2010 中编写了这个程序 class class1 public class1 initializer list
  • 在 C 中使用 #define 没有任何价值

    If a define没有任何价值地使用 例如 define COMMAND SPI 默认值是0吗 不 它的评估结果为零 从字面上看 该符号被替换为空 然而 一旦你有了 define FOO 预处理器条件 ifdef FOO现在将是真的 另
  • MSVC编译器下使用最大成员初始化联合

    我正在尝试初始化一个LARGE INTEGER在 C 库中为 0 确切地说是 C 03 以前 初始化是 static LARGE INTEGER freq 0 在 MinGW 下它产生了一个警告 缺少成员 LARGE INTEGER Hig
  • Emacs C++,打开相应的头文件

    我是 emacs 新手 我想知道 是否有在头文件 源文件和相应的源文件 头文件之间切换的快捷方式 是否有像通用 emacs 参考卡那样的参考卡 Thanks There s ff find other file 您可以使用以下方法将其绑定到

随机推荐

  • DVWA安装配置教程

    原文传送门 http www cnblogs com yaochc p 5049832 html DVWA 安装教程 1 直接下载WampServer 免去了需要安装apache php mysql的服务器软件的痛苦 一体集成 相当于安装了
  • CSRF漏洞详细说明

    CSRF漏洞详细说明 通常情况下 有三种方法被广泛用来防御CSRF攻击 验证token 验证HTTP请求的Referer 还有验证XMLHttpRequests里的自定义header 鉴于种种原因 这三种方法都不是那么完美 各有利弊 二 C
  • H.265/HEVC编码结构

    H 265 HEVC编码结构 为了增强各种应用下操作的灵活性以及数据损失的鲁棒性 H 265 HEVC在编解码的设计上添加了多种新的语法结构 相较于以往的视频编码标准 如H 264 AVC 这种新的语法架构使得H 265 HEVC在压缩效率
  • linux虚拟机可以ping通,但是无法socket连接

    场景 两台windows各开一台Linux虚拟机 通过路由器组网 分配桥接地址 出现电脑之间ping不通 socket不通怎么办 答案 1 关掉windows防火墙 任何阻止联网的行为统统取消 2 关掉linux防火墙 对 etc seli
  • 狂飙!GPT-4最新20+个应用案例集锦,附视频

    编者按 自OpenAI于3月15日重磅推出GPT 4 一石激起千层浪 全球开发者 创业者们迅速尝试了各种形形色色的场景应用 来体验它的极限 游戏 编程 客户关系 营销 财务 家庭生活 饮食 文学艺术创作等等不一而足 笔者从中筛选了23款基于
  • HandlerAdapter

    HandleAdapter HandlerAdapter的功能实际就是执行我们的具体的Controller Servlet或者HttpRequestHandler中的方法 类结构如下 1 SimpleServletHandlerAdapte
  • 【实战】将多个不规则多级表头的工作表合并为一个规范的一维表数据结果表...

    最近在项目里 有个临时的小需求 需要将一些行列交叉结构的表格进行汇总合并 转换成规范的一维表数据结构进行后续的分析使用 从一开始想到的使用VBA拼接字符串方式 完成PowerQuery的M语言查询字符串 然后转换成使用插件方式来实现相同功能
  • Unity-AR 简介

    Unity AR 简介 现有Unity AR Sdk ARKit 苹果推出的AR开发平台 ARCore Google 推出的增强现实 SDK ARFoundation ARFoundation是ARKit XR插件和ARCore XR插件
  • Linux下getopt函数的使用

    getopt为解析命令行参数函数 它是Linux C库函数 使用此函数需要包含系统头文件unistd h getopt函数声明如下 int getopt int argc char const argv const char optstri
  • CocosCreator用git版本控制时meta文件的冲突解决方法

    我们在多人进行CocosCreator开发时 需要对CCC的meta文件进行提交 meta文件里有CCC编辑器唯一识别的uuid 这个uuid是CCC编辑器对文件识别的唯一标识 如果我们不提交 会造成各个程序员电脑之间的CCC自动生成的uu
  • Fortify代码扫描工具

    一 Fortify介绍 Fortify是一款强大的静态代码扫描分析工具 其发现代码漏洞缺陷的能力十分强悍 主要是将代码经过编译 依托于其强大的内置规则库来发现漏洞的 其次fortify SCA团队在开发此商业工具时 也提供了自定义规则的接口
  • Python中的traceback的基本用法(异常处理)

    文章目录 一 Traceback介绍 二 Traceback中常用函数 1 traceback print tb 2 traceback print exception 3 traceback print exc 4 traceback f
  • MATLAB之function函数

    在MATLAB中 function函数用于定义一个新函数 用于将一定的输入 也称为参数 和输出变量与函数相关联 讲人话就是把自变量 函数和函数表达式定义为一个 可调用的函数块 由以下几个部分组成 function 关键字 首先得告诉MATL
  • stm32f103c8t6驱动oled

    要驱动OLED显示屏 您可以使用STM32F103C8T6微控制器及其相关的GPIO引脚和SPI总线接口 以下是驱动OLED显示屏的一些基本步骤 配置STM32F103C8T6的SPI总线接口 通过SPI总线发送命令和数据给OLED显示屏
  • iOS 自定义弹出框

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 在iOS中 系统再带的弹出窗体不好扩展 开发时候不如自定义一个弹出窗体 附加上显示和消失的动画 弹出窗体父类如下 具体效果直接往上面添加控件就行 ViewControlle
  • Jsp基于Web的可维护的数据库浏览器(源代码+论文+答辩PPT)

    1绪论 1 1Web应用系统 近十年来 基于Internet的应用正以前所未有的高速度发展 其中一个重要的方向就是基于Web的应用系统的发展 在此期间 随着技术的不断更新和应用的不断深入 Web应用系统的发展也经历了几个阶段性的跨越 图1
  • 什么是html网址,html是什么

    html语言是网络上的通用语言 也是比较简单的语言 对于想要在前端行业发展的人来说 html是必须要学的语言 那么 今天我们要来讲一下html是什么语言 html什么意思 以及html语言特点 什么是html HTML的英文全称是Hyper
  • 【C++】读取txt文件并查询指定字段

    目录 一 函数功能说明 二 代码 方法1 使用 lt lt 运算符 方法2 使用string getline 如果这篇文章对你有所帮助 渴望获得你的一个点赞 一 函数功能说明 函数名 说明 1 CompareFileFileds 按字符读取
  • 提高测试覆盖率的四大步骤

    什么是测试覆盖率 测试覆盖率衡量您测试了多少应用程序 这不仅与您执行的测试数量有关 它还与您查看的真实设备 浏览器和操作系统版本有关 您测试的设备和操作系统组合越多 测试覆盖的代码越多 测试覆盖率就越高 请注意 实现 100 的测试覆盖率是
  • enum与typedef enum的用法

    前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到网站 https www captainai net db 一 两者的用法 枚举类型定义用关键字enum标识 形式为 enum 标识符 枚举数据表