其值显示为字符串的枚举是什么类型?

2023-11-27

我正在与苹果公司合作ScriptingBridge框架,并为 iTunes 生成了一个头文件,其中包含几个enum像这样:

typedef enum {
    iTunesESrcLibrary = 'kLib',
    iTunesESrcIPod = 'kPod',
    iTunesESrcAudioCD = 'kACD',
    iTunesESrcMP3CD = 'kMCD',
    iTunesESrcDevice = 'kDev',
    iTunesESrcRadioTuner = 'kTun',
    iTunesESrcSharedLibrary = 'kShd',
    iTunesESrcUnknown = 'kUnk'
} iTunesESrc;

我的理解是enum值必须类似于整数,但这个定义似乎违反了该规则。此外,似乎对待这些enum值为整数(在NSPredicate,例如)没有做正确的事情。

我添加了enum将上面的声明声明为一个空的 C 文件main函数,并使用它编译i686-apple-darwin9-gcc-4.0.1。所以,虽然这些类型enums 可能不符合 C 标准(正如 Parappa 在下面指出的那样),它们至少被编译为some由 gcc 键入。

那么,该类型是什么,以及如何在格式字符串中使用它?


C99,TC3 内容如下:

6.4.4.4§2:

整数字符常量是一个序列一个或多个用单引号括起来的多字节字符,如“x”。 [...]

6.4.4.4§10:

整型字符常量的类型为 int。包含映射到单字节执行字符的单个字符的整型字符常量的值是解释为整数的映射字符表示形式的数值。包含多个字符(例如“ab”)或包含不映射到单字节执行字符的字符或转义序列的整型字符常量的值是实现定义的。如果整型字符常量包含单个字符或转义序列,则其值是当 char 类型的对象(其值为单个字符或转义序列的值)转换为 int 类型时得到的值。

在大多数实现中,使用最多 4 个一字节字符的整数字符常量是安全的。不过,不同系统之间的实际值可能有所不同(字节顺序?)。


这实际上已经在 ANSI-C89 标准第 3.1.3.4 节中定义:

整数字符常量是一个或多个的序列 用单引号括起来的多字节字符,如“x”或“ab”。 [...]

整型字符常量的类型为 int。的价值 包含映射的单个字符的整数字符常量 转换为基本执行字符集的成员是数值 映射字符的表示值解释为 整数。包含更多内容的整数字符常量的值 多于一个字符,或包含不包含字符或转义序列 在基本执行字符集中表示为 实现定义的。特别是,在其中的实现中 char 类型与有符号 char 具有相同的值范围,即高位 单字符整型字符常量的位位置是 被视为符号位。

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

其值显示为字符串的枚举是什么类型? 的相关文章

  • 当我在组合框中选择一个项目时,如何防止 TextChanged 事件?

    我有一个TextChanged http msdn microsoft com en us library system windows forms control textchanged aspx我的事件ComboBox http msd
  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • 函数参数的默认参数是否被视为该参数的初始值设定项?

    假设我有这样的函数声明 static const int R 0 static const int I 0 void f const int r R void g int i I 根据 dcl fct default 1 如果在参数声明中指
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • C# 存档中的文件列表

    我正在创建一个 FileFinder 类 您可以在其中进行如下搜索 var fileFinder new FileFinder new string C MyFolder1 C MyFolder2 new string
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • 在 NaN 情况下 to_string() 可以返回什么

    我使用 VS 2012 遇到了非常令人恼火的行为 有时我的浮点数是 NaN auto dbgHelp std to string myFloat dbgHelp最终包含5008角色 你不能发明这个东西 其中大部分为0 最终结果是 0 INF
  • 如何在 C 中安全地声明 16 位字符串文字?

    我知道已经有一个标准方法 前缀为L wchar t test literal L Test 问题是wchar t不保证是16位 但是对于我的项目 我需要16位wchar t 我还想避免通过的要求 fshort wchar 那么 C 不是 C
  • 为什么这个二维指针表示法有效,而另一个则无效[重复]

    这个问题在这里已经有答案了 这里我编写了一段代码来打印 3x3 矩阵的对角线值之和 这里我必须将矩阵传递给函数 矩阵被传递给指针数组 代码可以工作 但问题是我必须编写参数的方式如下 int mat 3 以下导致程序崩溃 int mat 3
  • C++ int 前面加 0 会改变整个值

    我有一个非常奇怪的问题 如果我像这样声明一个 int int time 0110 然后将其显示到控制台返回的值为72 但是当我删除前面的 0 时int time 110 然后控制台显示110正如预期的那样 我想知道两件事 首先 为什么它在
  • 检测到严重错误 c0000374 - C++ dll 将已分配内存的指针返回到 C#

    我有一个 c dll 它为我的主 c 应用程序提供一些功能 在这里 我尝试读取一个文件 将其加载到内存 然后返回一些信息 例如加载数据的指针和内存块的计数到 c Dll 成功将文件读取到内存 但在返回主应用程序时 程序由于堆损坏而崩溃 检测
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • Unity:通过拦截将两个接口注册为一个单例

    我有一个实现两个接口的类 我想对该类的方法应用拦截 我正在遵循中的建议Unity 将两个接口注册为一个单例 https stackoverflow com questions 1394650 unity register two inter
  • 在 Windows Phone silverlight 8.1 上接收 WNS 推送通知

    我有 Windows Phone 8 1 silverlight 应用程序 我想使用新框架 WNS 接收通知 我在 package appxmanifest 中有
  • 我可以在“字节数”设置为零的情况下调用 memcpy() 和 memmove() 吗?

    当我实际上没有什么可以移动 复制的时候 我是否需要处理这些情况memmove memcpy 作为边缘情况 int numberOfBytes if numberOfBytes 0 memmove dest source numberOfBy
  • 灵气序列解析问题

    我在使用 Spirit Qi 2 4 编写解析器时遇到一些问题 我有一系列键值对以以下格式解析
  • 不区分大小写的字符串比较 C++ [重复]

    这个问题在这里已经有答案了 我知道有一些方法可以进行忽略大小写的比较 其中涉及遍历字符串或一个good one https stackoverflow com questions 11635 case insensitive string
  • OpenCV SIFT 描述符关键点半径

    我正在深入研究OpenCV的SIFT描述符提取的实现 https github com Itseez opencv blob master modules nonfree src sift cpp 我发现了一些令人费解的代码来获取兴趣点邻域

随机推荐

  • 为什么在重新分区 Spark Dataframe 时会出现这么多空分区?

    我想将数据框 df1 分区为 3 列 该数据框恰好有这 3 列的 990 个独特组合 In 17 df1 createOrReplaceTempView df1 view In 18 spark sql select count from
  • 使用 AVFoundation 进行视频录制

    我正在尝试使用 AVFoundation 录制视频 当我仅向会话添加视频输入时 一切正常 但是当我向其中添加音频输入时 它会停止录制视频 录制开始后立即调用委托方法 这是我的代码 void recordVideo self session
  • 我的计算机中缺少 SDL.dll - VS 2010

    我正在尝试编译我编写的 SDL 程序 但是当我这样做时 会出现以下错误 该程序无法启动 因为您的计算机缺少 SDL dll 尝试重新安装程序来解决此问题 我不知道为什么 我有SDL dll 我已将其放入正确的文件夹中 C Windows S
  • 如何更新 bootstrap-typeahead.js 中的源选项

    我使用 bootstrap typeahead 来允许多重选择 这里是demo 原始代码已由 Sherbrow 更新Twitter bootstrap 预先输入多个值 我的问题与以下用例相关 插入后Alaska值 我想更新不再显示的源Ala
  • 什么时候可以使用前向声明?

    我正在寻找何时允许在另一个类的头文件中对一个类进行前向声明的定义 我是否可以对基类 作为成员持有的类 通过引用传递给成员函数的类等执行此操作 将自己置于编译器的位置 当你向前声明一个类型时 编译器只知道该类型存在 它对其规模 成员或方法一无
  • Android 相机预览回调在 4.1 中未调用

    我有一个应用程序可以获取带有表面的相机预览帧 它可以在 Android 4 0 4 上运行 但更新后在同一设备上无法与 Jelly Bean 4 1 2 一起运行 简单来说 回调永远不会被回调 这是代码 剪了一点 public class
  • 如何在 Postgres 中列出视图的列?

    对于物理表 我一直使用以下 SQL select column name data type character maximum length from INFORMATION SCHEMA COLUMNS where table name
  • java中增强for循环的最后一次迭代

    有没有办法确定循环是否是最后一次迭代 我的代码看起来像这样 int array 1 2 3 StringBuilder builder new StringBuilder for int i array builder append i i
  • iOS 版 Objective C 中的属性反射

    我希望能够在 Objective C 中的类上使用反射来确定运行时可用的属性 我现在使用类来做类似的事情 NSString str NSStringFromClass object class 我想做的是使用这个结果返回类并查看哪些属性可用
  • 如何在 Ubuntu 中安装 Visual Studio 2015

    我听说过 Visual Studio Net 2015 适用于 Ubuntu 我在网上还找不到任何有用的东西你能帮我在 ubuntu linux 上安装这个版本吗 谢谢 据我所知 Visual Studio 不能在 LINUX 或 UBUN
  • 将 UIImage 转换为 NSData 再转换回 UIImage

    我必须从数据库填充表格单元格 并且图像位于设备上 我必须将该图像存储在imageDataObject 如何转换它UIImage to NSData 请建议 我尝试了很多解决方案 但它没有转换回来NSData to UIImage cell
  • SSL证书问题:无法在git中获取本地颁发者证书[重复]

    这个问题在这里已经有答案了 我在推送 git 时遇到问题 显示此错误消息 SSL certificate problem unable to get local issuer certificate 之前有多种方法解决了此问题 A 确保根证
  • RESTful 比 SOAP 更快吗?何时使用其中之一?

    复制 这是 REST 服务的最佳用途是什么 以及许多其他内容 请关闭它 在网络开发中 我应该很好地学习 RESTful 服务并让我未来的所有项目都使用它吗 它比 SOAP 服务更快吗 什么时候用哪个 在某些情况下我应该选择其中一种吗 根据我
  • 为变量分配一个范围

    每当我尝试为变量分配一个范围时 如下所示 Var1 range 10 50 然后尝试打印变量 Var1 range 10 50 print Var1 它只是打印 range 10 50 而不是该范围内的所有数字 为什么是这样 那是因为ran
  • 智能指针可以与使用 new T[] 分配的数组一起使用吗?

    智能指针如何处理数组 例如 void function std unique ptr
  • 如何使用 Windows 批处理脚本将空 ASCII 字符 (nul) 写入文件?

    我尝试从 Windows 批处理脚本将 ASCII 空字符 nul 写入文件 但没有成功 我最初尝试使用echo像这样 echo
  • iOS 8 如何检测蓝牙耳机是否已插入?

    在我的项目中 我使用AVAudioSession检测任何耳机已插入或拔出 但在这种情况下 我无法检测到蓝牙设备何时插入 这是我的耳机状态代码 void audioRouteChangeListenerCallback NSNotificat
  • 更改 jenkins 管道以使用 github 而不是 gitlab

    我有一组在 jenkins 管道中运行的自动化测试 测试代码位于 gitlab 中 我从 gitlab 提取代码的部分如下所示 我使用那里已经存在的 gitlab 凭据 因为其他项目使用相同的 gitlab 凭据 我使用位于测试代码库中的一
  • 如何在 PowerShell 中添加事件操作处理程序

    终端 Gui gui cs 提供了一个Button类与Clicked事件定义为 public event Action Clicked 我正在尝试在 PowerShell 中为 Terminal Gui 编写一个示例应用程序 并且正在努力连
  • 其值显示为字符串的枚举是什么类型?

    我正在与苹果公司合作ScriptingBridge框架 并为 iTunes 生成了一个头文件 其中包含几个enum像这样 typedef enum iTunesESrcLibrary kLib iTunesESrcIPod kPod iTu