在本网站上阅读多年(并获得许多有用的解决方案)之后,我该问一个问题了:)
我想知道默认的枚举值。我正在使用枚举将错误代码从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 :(得分:2)
是的,两种语言都保证,如果您没有明确地将枚举值作为整数值给出,那么它比前一个枚举值多一个。
答案 1 :(得分:0)
如果以0开始枚举,则在C#中为是,则连续枚举应为连续数字。在你的例子中,no_error = 0,那么error_1将是1.同样在C中也是如此。比如在C中说,
NewList2 <- lapply(NewList, function(x) x[,!is.na(x)])