C 定义一个;“未知”;或;空";枚举中的值
我正在定义一个自定义的typedef元素,如下所示C 定义一个;“未知”;或;空";枚举中的值,c,enums,null,default,typedef,C,Enums,Null,Default,Typedef,我正在定义一个自定义的typedef元素,如下所示 typedef enum { Ar, Cl, F, He, H, Kr, Ne, N, O, Rn, Xe } Element; 我想检查尚未设置Element类型的变量(基本上只是检查空值)。就我所知,做这件事的唯一方法是增加一行 .... { unknown = 0, Ar, F, ...etc 我是对的还是有更
typedef enum {
Ar,
Cl,
F,
He,
H,
Kr,
Ne,
N,
O,
Rn,
Xe
} Element;
我想检查尚未设置Element类型的变量(基本上只是检查空值)。就我所知,做这件事的唯一方法是增加一行
.... {
unknown = 0,
Ar,
F,
...etc
我是对的还是有更优雅的方法来实现这一点?是的,您应该包含一个“未知”值。基本上,
enum
只是一个int
。如果未在声明中定义任何常量(如在第一个代码示例中),则第一个选项将设置为0
,并设置为默认值
另一种方法是将第一个选项设置为1
。这样就不会定义值0
,您可以手动检查该值
typedef enum {
Ar = 1,
Cl,
F,
He,
H,
Kr,
Ne,
N,
O,
Rn,
Xe
} Element;
if (myElement) { // same as if (myElement != 0)
// Defined
} else {
// Undefined
}
但是我会选择一个显式定义的“未知”值。我相信约定是有一个“未知”值……或者,不要为此使用枚举。也许只是用NSString对象来代替?哦!没有物体。。。我的脑袋在objective-c土地上。。。尽管如此,我还是可以将
元素
升级为一个结构+一组实用函数。这取决于如何使用元素
。