¿Los valores de enumeración predeterminados en C son los mismos para todos los compiladores?

2 minutos de lectura

avatar de usuario
SSS

Al declarar una enumeración como se muestra a continuación, todos los compiladores de C establecen los valores predeterminados como x=0, y=1y z=2 en los sistemas Linux y Windows?

typedef enum {
    x,
    y,
    z
} someName;

  • Sí, es requerido por los estándares, y estoy seguro de que alguien podrá citarlos.

    – Nemo

    22 de junio de 2011 a las 2:05

Sí. A menos que especifique lo contrario en la definición de la enumeración, el enumerador inicial siempre tiene el valor cero y el valor de cada enumerador posterior es uno mayor que el enumerador anterior.

  • y tanto C como C++ requieren este comportamiento idéntico. En C++, es [dcl.enum]: “Si el primer enumerador no tiene inicializador, el valor de la constante correspondiente es cero. Una definición de enumerador sin inicializador le da al enumerador el valor obtenido al aumentar el valor del enumerador anterior en uno”.

    – Ben Voigt

    22 de junio de 2011 a las 2:06


  • Sí, y también otros lenguajes que comienzan con la letra C, como C#.

    –James McNellis

    22 de junio de 2011 a las 2:07

  • ser mar 't' no está garantizado, puede haber juegos de caracteres en los que las letras no estén en orden alfabético consecutivo

    –MM

    27 de mayo de 2019 a las 5:25

Sí, el valor enumerado comienza de forma predeterminada desde 0 hasta el elemento n para cualquier plataforma.

  • Considere cómo su respuesta se suma al grupo de respuestas. Es decir, ¿cómo agrega su nueva respuesta (5 años después) algo nuevo que no está cubierto en otra respuesta? A primera vista, parece ser menos informativo que las otras dos respuestas.

    – Legalmente malvado

    2 de junio de 2016 a las 11:45

  • Ehhh @LawfulEvil tranquilo. Las respuestas múltiples dan a las personas que miran esto en el futuro múltiples perspectivas. Dicho esto, esta es una respuesta poco informativa y mal formateada, pero las respuestas amplias en sí mismas no son malas.

    – Kenny Worden

    1 de marzo de 2018 a las 6:27

  • Considere cómo su respuesta se suma al grupo de respuestas. Es decir, ¿cómo agrega su nueva respuesta (5 años después) algo nuevo que no está cubierto en otra respuesta? A primera vista, parece ser menos informativo que las otras dos respuestas.

    – Legalmente malvado

    2 de junio de 2016 a las 11:45

  • Ehhh @LawfulEvil tranquilo. Las respuestas múltiples dan a las personas que miran esto en el futuro múltiples perspectivas. Dicho esto, esta es una respuesta poco informativa y mal formateada, pero las respuestas amplias en sí mismas no son malas.

    – Kenny Worden

    1 de marzo de 2018 a las 6:27

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad