Код, который вы предоставляете, не может быть скомпилирован в C ++, так как имя структуры - new
.
В любом случае, вы можете попробовать просто сбросить :uint8_t
. Это изменит строго типизированный enum
на стандартный Си. Если вам повезет, все будет работать. Если в любой другой точке вы используете head
, tail
или data
, это не будет работать. Вы можете сделать это:
enum new_enum {
new_enum_head = 1,
new_enum_tail = 2,
new_enum_data = 3,
};
Уродливо, но, вероятно, сработает. Конечно, enum
придется выйти за пределы struct
, в котором он был определен. Это снова может вызвать много горя, но менее вероятно.