c++ - 如何将 C++ 代码中的枚举转换为 C

标签 c++ c class enums structure

我正在将 C++ 代码转换为 C 代码。这是需要转换的代码-

struct new{
   enum new_enum:uint8_t {
       head = 1,
       tail = 2,
       data = 3,
   };
};

如何转换?有人可以解释枚举中的 uint8_t 是什么吗?是否将所有变量分配给 uint8_t?

最佳答案

您提供的代码无法在 C++ 中编译,因为结构名称是 new

无论如何,您可以尝试只删除 :uint8_t。这会将强类型 enum 更改为标准 C 类型。如果你幸运的话,一切都会成功。如果在任何其他点您使用了 headtaildata,它将不起作用。你可以这样做:

enum new_enum {
    new_enum_head = 1,
    new_enum_tail = 2,
    new_enum_data = 3,
};

丑陋,但可能有效。当然,enum 必须从定义它的 struct 中脱离出来。这又会引起很多麻烦,但可能性较小。

关于c++ - 如何将 C++ 代码中的枚举转换为 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55349000/

相关文章:

c++ - OpenGL 渲染到纹理 (FBO) 不起作用

c++ - C/C++中的参数传递

c++ - 指针有大小吗?

c++ - 如何调用子类函数实现的纯虚基类方法?

c - OpenMP 和带有 continue 语句的嵌套 for 循环

c - Strcpy 在用户定义的数组中不起作用

c++ - 在 int main() 中使用类函数

c++ - 在另一个文件中定义匿名类的方法

C 中指针与整数的比较

java - ClassLoader.getSystemResourceAsStream(className) 尝试加载类文件资源时返回 null