Sintaxe
enumO valor padrão de enumeração_constant_element-1 é 0, o valor de enumeração_constant_element-2 é 1, o valor de enumeração_constant_element-3 é 2 e o valor de enumeração_constant_element-n é (n-1).
Mergulhe profundo em enum
Agora, como sabemos a sintaxe para definir o tipo de enumeração, vejamos um exemplo:
Erro de enumA palavra -chave "enum" deve sempre ser usada para definir o tipo de enumeração. Portanto, sempre que você quiser definir um tipo de enumeração, você deve usar a palavra -chave "enum" antes . Após a palavra -chave "enum", você deve usar um identificador válido para definir o .
No exemplo acima, o compilador atribuirá io_error ao valor integral: 0, Disk_error ao valor integral: 1 e Network_error ao valor integral: 2. Por padrão, o primeiro elemento enum é sempre atribuído o valor 0, o próximo elemento enum é atribuído o valor 1 e assim por diante.
Esse comportamento padrão pode ser alterado, se necessário, atribuindo o valor integral constante explicitamente, como segue:
Erro de enumNesse caso, o io_error é explicitamente atribuído a um valor 2 pelo programador, o Disk_error é atribuído a um valor 3 pelo compilador, o Network_error é atribuído explicitamente ao valor de 8 pelo programador, e Print_error é atribuído ao próximo Valor integral do elemento enum anterior Network_error (i.e., 9) pelo compilador.
Então, agora você entende como definir um tipo de enumeração definido pelo usuário em C. É possível declarar uma variável do tipo enum (como podemos declarar uma variável do tipo inteiro)? É sim! Você pode declarar a variável enum da seguinte maneira:
Erro de enum hw_error;Novamente, "enum" é a palavra -chave aqui, "erro" é o tipo de enum, e "hw_error" é uma variável enum.
Agora veremos os seguintes exemplos para entender os vários usos de enum:
Exemplo 1: Uso da definição de enum padrão
Neste exemplo, você aprenderá como definir o tipo de enumeração com valores constantes padrão. O compilador cuidará de atribuir os valores padrão aos elementos de enum. Abaixo, você verá o programa de exemplo e a saída correspondente.
#incluirExemplo 2: Uso da definição de enum personalizada
Neste exemplo, você aprenderá como definir o tipo de enumeração com um valor constante personalizado. Além disso, este exemplo ajudará você a entender como a inicialização das constantes personalizadas pode ser feita em qualquer ordem aleatória. Neste exemplo, definimos explicitamente o valor constante para o 1st e 3rd enum elementos (eu.e., Io_error e Network_error, respectivamente), mas ignoramos a inicialização explícita para os 2nd e 4º elementos. Agora é de responsabilidade do compilador atribuir os valores padrão ao 2nd e 4º enum elementos (eu.e., Disk_error e print_error, respectivamente). Disk_error será atribuído a um valor de 3 e Print_error será atribuído a um valor de 9. Abaixo, você verá o programa de exemplo e a saída.
#incluirExemplo 3: Definição de Enum usando expressão constante
Neste exemplo, você aprenderá a usar a expressão constante para definir o valor constante para os elementos de enum.
#incluirExemplo 4: Enum Scope
Neste exemplo, você aprenderá como a regra de escopo funciona para enum. Uma macro (#Define) poderia ter sido usada para definir uma constante em vez da enumeração, mas a regra do escopo não funciona para a macro.
#incluirComparação entre enum e macro
Enum | Macro |
A regra de escopo é aplicável para enum. | A regra de escopo não é aplicável à macro. |
A atribuição de valor de enum padrão acontece automaticamente. Enum é muito útil para definir um grande número de constantes. O compilador toma a inicialização do valor constante padrão. | Os valores constantes macro devem sempre ser mencionados explicitamente pelo programador. Isso pode ser um processo tedioso para um grande número de constantes, pois o programador deve sempre definir manualmente cada valor constante enquanto definiu a macro. |
Conclusão
O programa enum em C pode ser considerado um método opcional para programas independentes ou projetos de tamanho pequeno, pois os programadores sempre podem usar macro em vez de uma enum. No entanto, programadores experientes tendem a usar enum sobre macro para projetos de desenvolvimento de software em larga escala. Isso ajuda a escrever programas limpos e legíveis.