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

时间:2019-03-26 02:27:26

标签: c++ c class enums structure

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

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

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

2 个答案:

答案 0 :(得分:2)

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

无论如何,您可以尝试放下:uint8_t。这会将强类型的enum更改为标准C。如果幸运的话,一切都会正常。如果您在其他任何地方都使用过headtaildata,则将无法使用。您可以这样做:

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?