usar - variables estáticas c#
¿GCC inicializa automáticamente las variables estáticas a cero? (2)
Sí, el estándar C de ISO / IEC 9899: 1999 también conocido como C99 (y C ++) dice que esto debe ser así. Consulte el artículo 10 en la sección 6.7.8 ("Inicialización") de WG14 N1256 para obtener el texto exacto.
Como han señalado otros, es una buena práctica inicializar siempre variables estáticas:
static int idx = 0;
La razón para hacer esto no es porque algún compilador no siempre inicie las variables estáticas a cero (cualquier compilador que no haya podido realizar dicha inicialización se rompería definitivamente y no podría pretender ser un compilador de C o C ++), es Decir Significa: posiblemente la regla más básica de programación.
Tengo una variable estática declarada pero no inicializada en una función. ¿Esta variable se inicializará a cero automáticamente?
static int idx;
Si bien los estándares dicen que sí ... Las buenas prácticas indican que siempre debe inicializar las variables. Nunca se sabe cuándo cambia el compilador, o tiene que compilarlo en otra máquina, quiere minimizar cualquier posibilidad de comportamiento inesperado.