É o sizeof (enum) == sizeof (int), sempre?

É o sizeof (enum) == sizeof (int), sempre?

Ou é dependente do compilador?É errado dizer, como o compilador é otimizado para comprimentos de palavras (alinhamento de memória) ou seja, y int é o tamanho da palavra em um compilador específico? Isso significa que não há penalidade de processamento se eu usar enums, pois eles seriam alinhados?Não é melhor se eu colocar todos os códigos de retorno em um enum, como claramente não me preocupo com os valores que obtém, apenas os nomes durante a verificação dos tipos de retorno. Se este for o caso, #DEFINE não será melhor, pois pouparia memória.

Qual é a prática usual? Se eu tiver que transportar esses tipos de retorno em uma rede e algum processamento tiver que ser feito na outra extremidade, o que você preferiria enums / # define / const.

EDIT - Apenas verificando na net, como complier não vincula simbolicamente as macros, como as pessoas depuram então, compara o valor inteiro com o arquivo de cabeçalho?

De Respostas - Estou adicionando esta linha abaixo, pois preciso de esclarecimentos

"Portanto, é definido pela implementação e sizeof (enum)pode ser igual a sizeof (char), ou seja, 1. "

Isso não significa que o compilador verifica o intervalo de valores em enums e, em seguida, atribui memória. Acho que não, claro que não sei. Alguém pode me explicar o que "pode ​​ser".

questionAnswers(5)

yourAnswerToTheQuestion