我正在将 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 类型。如果你幸运的话,一切都会成功。如果在任何其他点您使用了 head
、tail
或 data
,它将不起作用。你可以这样做:
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/