¿En qué situaciones se debe utilizar enumeración anónima?
En c y c ++enum
podría definirse con etiqueta
<code>enum e_smth { smth_one, smth_two, smth_err }; </code>
o sin etiqueta
<code>enum { smth_one, smth_two, smth_err }; </code>
Si fue definido con etiqueta tiene sentido enswitch
declaraciones tanto en c como en c ++:
<code>e_smth some_var; ....//do some stuff with some_var switch (some_var) { case smth_one: break; case smth_two: break; } </code>
Producirá-Wswitch
advertencia si esto será compilado con gcc o g ++.
Tiene sentido en las declaraciones de funciones y la inicialización de variables en c ++:
<code>e_smth var; var=99; </code>
Producirá-fpermissive
error si se compila con g ++.
Ambos tipos con o sin etiqueta podrían usarse como un archivo#define
Macro sin parámetros.
actualizar
podría ser utilizado como un archivo#define
macro sin parametros
significado: en lugar de escribir#define MAX 1000
en archivo y añadiendo MAX al uso globalenum { MAX=1000 }
solo en el alcance del archivo
Y ¿qué pasa con las enumeraciones anónimas, he encontrado un solo caso de uso: definición comotypedef enum { a,b,c } some_t;
hace que funcione como enum con etiqueta
Si aún no he descrito todos los casos de uso razonables, ¿qué debo usar para las enumeraciones anónimas?