[英]C# vs C default enum Values
經過多年閱讀本網站(並獲得許多有用的解決方案)之后,是時候讓我問一個問題了:)
我想知道默認的枚舉值。 我正在使用枚舉將錯誤代碼從MCU發送到PC(反之亦然)
定義這樣的枚舉是否是一種好習慣(且安全)?
C:
typedef enum
{
no_error = 0,
error_1
error_2,
...
}
C#
enum
{
no_error = 0,
error_1,
error_2,
}
傳輸之前,所有枚舉值都將轉換為Uint32
。 我可以始終假設C和C#端的error_1 = 1
和error_2=2
嗎?
我正在使用GCC編譯器。
是的,兩種語言都保證,如果您未明確給出枚舉值作為整數值,則它比先前的枚舉值大一個。
如果您以0開頭的枚舉,則在C#中為是,則連續的枚舉應為連續的數字。 在您的示例中,如果no_error = 0,則error_1將為1。同樣在C語言中,它是相同的。 以C為例,
enum DAY
{
sunday = 0,
monday,
tuesday,
wednesday, ****/* wednesday is associated with 3 as Sunday is 0*/****
thursday,
friday
} workday;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.