Estoy declarando una estructura en el IDE (Netbeans) así:Struct Declaration: ¿Inicializador válido en la declaración?
struct foo { size_t var = 1; }
Y el IDE dice su legal. Recopilo el proyecto (es una versión estática) y el compilador dice que es legal (no se queja ni tira).
Ahora ya estoy haciendo una prueba de la sintaxis en este punto tengo que pedirle a alguien que pueda saber si esto va a funcionar cuando voy a declarar una estructura de esta etiqueta en mis procedimientos de la siguiente manera:
struct foo myfoo;
Entonces la pregunta es: ¿Es esto un iniciador válido? (size_t var = 1
) o es el compilador solo acariciando mi ego aquí? No he encontrado nada en google ni en documentación como esta, así que supongo que no funciona de la manera que espero.
* edit Entonces, yo y los buenos 'chicos' de aquí @SO descubrieron que compilará en una configuración de depuración pero no en una configuración de lanzamiento. ¿Quién dice que una cabeza es mejor que un par de miles? : D
ver pregunta relacionada http://stackoverflow.com/questions/330793/how- to-initialize-a-struct-in-ansi-c – TJD
@TJD ¡Ahora fue rápido e increíble! Gracias. Pero todavía no entiendo por qué GCC y el IDE lo dejan resbalar sin gemir. Acabo de patear las advertencias hasta el tope ... Y aún puedo oír el sonido de los grillos. lol. –
¿Qué versión de gcc estás usando? Acabo de probar con 4.4.3 y me sale un error 'expected': ',', ','; ','} 'o' __attribute__ 'before' = 'token' –