Как я могу конвертировать enum в C ++ код в C - PullRequest
0 голосов
/ 26 марта 2019

Я конвертирую код C ++ в код C. Вот код, который необходимо преобразовать -

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

Как конвертировать это? Может кто-нибудь объяснить, что такое uint8_t в enum? Это присваивает все переменные uint8_t?

Ответы [ 2 ]

2 голосов
/ 26 марта 2019

Код, который вы предоставляете, не может быть скомпилирован в 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, в котором он был определен. Это снова может вызвать много горя, но менее вероятно.

0 голосов
/ 26 марта 2019

Я преобразовываю код C ++ в код C.

Это кажется странным направлением.

Здесь нет прямого преобразования.Типизированные перечисления являются функцией c ++.

Здесь есть похожий вопрос: Как эмулировать строго типизированные перечисления в C?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...