2012-09-26 11 views
8

jestem definiowania niestandardowych elementów typedef następująco ....Definiowanie „nieznany” lub wartość „null” w enum

typedef enum { 
    Ar, 
    Cl, 
    F, 
    He, 
    H, 
    Kr, 
    Ne, 
    N, 
    O, 
    Rn, 
    Xe 
} Element; 

Chcę sprawdzić zmienną typu Element nie został ustawiony (zasadniczo po prostu sprawdź wartość NULL). O ile mogę powiedzieć, jedynym sposobem, aby to zrobić, jest dodanie dodatkowej linii. Czy mam rację, czy istnieje bardziej elegancki sposób na zrobienie tego?

+0

Wierzę, że konwencja ma mieć "nieznaną" wartość – nielsbot

+0

... lub, nie używajcie wyliczeń dla tego. może po prostu użyć obiektów NSString zamiast? – nielsbot

+0

To proste Ctw. – DrummerB

Odpowiedz

20

Tak, należy podać "nieznaną" wartość. Zasadniczo enum to tylko int. Jeśli nie zdefiniujesz żadnych stałych w deklaracjach (jak w pierwszym przykładzie kodu), pierwsza opcja zostanie ustawiona na 0 i wartość domyślną.

Alternatywą może być ustawienie pierwszej opcji na 1. W ten sposób wartość 0 nie zostanie zdefiniowana i możesz to sprawdzić ręcznie.

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 
} 

Ale zamiast tego wybrałbym jawnie zdefiniowaną wartość "nieznaną".