¿Es sizeof (enum) == sizeof (int), siempre?

¿Es sizeof (enum) == sizeof (int), siempre?

¿O es dependiente del compilador?¿Es incorrecto decir que el compilador está optimizado para la longitud de las palabras (alineación de la memoria), es decir, y int es el tamaño de palabra en un compilador en particular? ¿Significa que no hay una penalización de procesamiento si uso enumeraciones, ya que estarían alineadas por palabras?¿No es mejor si pongo todos los códigos de retorno en una enumeración, ya que claramente no me preocupo por los valores que obtiene, solo los nombres mientras verifico los tipos de retorno? Si este es el caso, no #DEFINE será mejor, ya que ahorraría memoria.

¿Cuál es la práctica habitual? Si tengo que transportar estos tipos de devolución a través de una red y se debe realizar algún procesamiento en el otro extremo, ¿qué preferiría que enumeren / # define / const onts?

EDITAR - Solo verificando en la red, ya que el compilador no vincula simbólicamente las macros, ¿cómo hacen las personas para depurar, comparar el valor entero con el archivo de encabezado?

De Respuestas: estoy agregando esta línea a continuación, ya que necesito aclaraciones:

"Así que está definido por la implementación, y sizeof (enum)puede ser igual a sizeof (char), es decir, 1. "

No significa que el compilador verifique el rango de valores en enumeraciones y luego asigne memoria. No lo creo, por supuesto que no lo sé. ¿Puede alguien explicarme qué es "podría ser"?

Respuestas a la pregunta(5)

Su respuesta a la pregunta