簡體   English   中英

C#vs C默認枚舉值

[英]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 = 1error_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.

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