我正在将C ++代码转换为C代码。这是需要转换的代码-
struct new{
enum new_enum:uint8_t {
head = 1,
tail = 2,
data = 3,
};
};
如何转换?有人可以解释枚举中的uint8_t吗?是否将所有变量都分配给uint8_t?
答案 0 :(得分:2)
您提供的代码无法在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
。这可能会引起很多麻烦,但可能性较小。
答案 1 :(得分:0)
我正在将C ++代码转换为C代码。
这似乎是一个奇怪的方向。
这里没有直接转换。枚举类型是c ++的功能。
这里有一个类似的问题:How to emulate strongly typed enum in C?