Определите значение "Unknown" или "NULL" в перечислении
Я определение пользовательского элемента состоит в следующем....
typedef enum {
Ar,
Cl,
F,
He,
H,
Kr,
Ne,
N,
O,
Rn,
Xe
} Element;
Я хочу проверить, что переменная типа Element не была установлена (по существу, просто проверьте значение NULL). Насколько я могу судить, единственный способ сделать это-добавить дополнительную строку
.... {
unknown = 0,
Ar,
F,
...etc
Прав ли я или есть более элегантный способ сделать это?1 ответ:
Да, вы должны включить" неизвестное " значение. В сущности,
Альтернативой может быть установка первого параметра в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 }
Но вместо этого я бы выбрал явно определенное" неизвестное " значение.