簡體   English   中英

如何將C ++代碼中的枚舉轉換為C

[英]How can I convert enum in C++ code into C

我正在將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 enum 如果幸運的話,一切都會正常。 如果您在任何其他方面都使用headtaildata ,則將無法使用。 你可以這樣做:

enum new_enum {
    new_enum_head = 1,
    new_enum_tail = 2,
    new_enum_data = 3,
};

丑陋,但可能會起作用。 當然, enum必須脫離其定義的struct 。這同樣會引起很多麻煩,但可能性較小。

我正在將C ++代碼轉換為C代碼。

這似乎是一個奇怪的方向。

這里沒有直接轉換。 類型枚舉是c ++的功能。

這里有一個類似的問題: 如何在C中模擬強類型的枚舉?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM