Así que una enumeración funciona así:¿Por qué usar enum cuando #define es igual de eficiente?
enum {
false,
true
}
lo que equivale a
int false = 0
int true = 1
Por qué no habría que sustituir enum
con #define
?
#define FALSE 0
#define TRUE 1
Para mí, parece que son intercambiables. Soy consciente de que #define
es capaz de manejar argumentos, por lo tanto opera de una manera completamente diferente a enum
. ¿Cuáles son exactamente los principales usos de enum
cuando tenemos #define
en este caso?
Si tuviera que adivinar, como el #define
es una función de preprocesador, enum
tendría algunas ventajas de tiempo de ejecución. ¿Qué tan lejos estoy?
Gracias de antemano.
ver http://stackoverflow.com/questions/136946/difference-between-enum-and-define-statements – SirDarius
Impar, ese no apareció en mis resultados de búsqueda. ¡Gracias! – userenum
No es equivalente a 'int false = 0' ni a' int const false = 0' (que sería más apropiado). Las variables 'int' tendrían una dirección, entonces podrías hacer' & false', que no puedes hacer para 'enum'. –