Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/05/2011, 13:26
Fw190
 
Fecha de Ingreso: junio-2010
Ubicación: Madrid
Mensajes: 620
Antigüedad: 13 años, 11 meses
Puntos: 73
Respuesta: ¿Se pueden definir estructuras extern?

En principio, en un archivo de cabecera puedes declarar variables y puedes asignarles valores en la propia declaración, por ejemplo,

float x=1.5;

No obstante, esta práctica no es conveniente. En un archivo de cabecera debe haber solamente definiciones de macros, de estructuras de datos, clases y objetos, y prototipos de funciones.

También parece que no tienes muy claro el empleo del atributo extern. Se utiliza en programas compuestos por varios archivos de código fuente que van a compilarse y enlazarse juntos, para indicar que una variable determinada está declarada en otro de los archivos que componen el programa. En uno de ellos tiene que haber una variable global que sea del mismo tipo y se llame igual, pero sin el atributo extern. Pero, si la declaras en un archivo de cabecera que luego vas a #include en tu programa, no necesitas el atributo extern, declárala normalmente. Repito, no es una buena práctica.

Dado que, de cara al compilador, la directiva #include significa "coge este archivo e insértalo aquí tal cual", cada vez que tengas que cambiar tus datos para hacer un nuevo cálculo tendrías que recompilar el programa, tanto da que declares esas variables en un archivo de cabecera (que, repito por enésima vez, no es conveniente) que dentro de tu programa.

Te sugiero que postees tu código, así sería más fácil darte indicaciones.

Saludos,