c - C中未初始化的枚举
问题描述
我的不幸任务是将一些用 C 编写的代码带入 C++。
我在具有以下形式的结构中遇到了一个未初始化的枚举。
enum theEnum {
A = 1,
B = 2,
C = 3,
}
struct theCStruct{
enum theEnum enuminstance;
}
theCStruct structInstance;
我知道在 C++ 中这将是未定义的,但是当我发现 C 结构中未初始化的变量默认为 0(至少对于整数)而不是未定义时。
在这种情况下,枚举的默认值在 C 中是什么?
解决方案
C 结构中未初始化的变量默认为 0(至少对于整数)而不是未定义的。
这是一个神话,除非struct
实例具有static
或_Thread_local
存储持续时间或在全局范围内。
这两种语言在这方面是相同的。
根据经验,不要port,而是interop。C 在通用操作系统上有非常好的 API。
推荐阅读
- google-sheets - Google 表格 countunique + query + importrange = 语法错误
- solace - 使用 solace 和 jms 时冲突的 bean
- python - python中的匈牙利算法图
- angular - 创建反应式表单时出现此错误
- python - 来自自定义 cmap 的 Proplot 颜色条
- java - 例外“比较方法违反其一般合同!” 比较对象的两个日期属性时
- python - 在熊猫中的某一行之前设置行而不迭代
- active-directory - (Node.js + React)应用程序和 Microsoft Active Directory 之间的 SSO 身份验证流程
- python - 图形对象 update_xaxes 未更新
- reactjs - 在 React 中构建单向图