2013-02-01 9 views
5

mi ritrovo sempre aggiungendo il nome della enum, ai suoi valori, perché altrimenti mi hanno spesso conflitti con altre enumerazioni, ad esempio:Garantire enum nome unicità in C senza l'aggiunta di lungo prefisso

typedef enum 
{ 
    A_ONE, 
    A_TWO, 
} A; 

typedef enum 
{ 
    B_ONE, 
    B_TWO, 
} B; 

C'è un modo migliore per farlo in C?

+1

Correlato: http://stackoverflow.com/q/2161940/335858 (la risposta breve è "no"). – dasblinkenlight

+1

Un altro esempio del problema: 'enum fruit {orange, apple, banana}; enum color {rosso, arancione, giallo, verde, blu, indaco, viola}; ' –

risposta

2

No, non c'è. C++ ha spazi dei nomi, o enumerazioni esistenti nelle classi (IIRC), ma C è estremamente primitivo in questo senso.

-1

E 'la vostra decisione, ma è possibile utilizzare la direttiva # define

#define WHAT_EVER TO_BE_REPLACED

Definisce saranno sostituiti dal WHAT_EVER nel codice con TO_BE_REPLACED.

Dopo che il preprocessore ha eseguito il lancio del codice, tutto verrà sostituito.

+1

In che modo questo risolve il problema nella domanda? –