13/09/2010, 04:37
|
| | Fecha de Ingreso: junio-2010 Ubicación: Madrid
Mensajes: 620
Antigüedad: 14 años, 7 meses Puntos: 73 | |
Respuesta: extern La directiva #include significa "coge el contenido del archivo que te indico e insértamelo aquí". Es como si copiaras y pegaras con un editor de texto, el compilador lo verá como un solo archivo.
La directiva extern significa "esta variable está declarada en otro archivo". Esto significa que la variable debe estar declarada en algún otro archivo, exactamente con el mismo nombre y tipo, pero sin el atributo extern.
"Otro archivo" no significa un archivo con el que haces #include, sino uno completamente independiente dentro del mismo proyecto.
En un archivo de cabecera no debe haber implementación de funciones ni declaración de variables. Aunque no sea ilegal (el compilador se lo tragará), puede ser fuente de muchos problemas, especialmente si incluyes esa misma cabecera en varios archivos dentro de tu proyecto, aparte de que el compilador o el depurador pueden volverse locos si hay errores. En un archivo de cabecera debe haber solamente definición de macros (si las utilizas), definición de estructuras de datos, clases y plantillas, y prototipos de funciones. Como ya he indicado, meter aquí código ejecutable (entendiendo como tal la implementación de funciones y
la declaración de variables, que de cara al código máquina es código ejecutable) es sumamente peligroso.
Espero que este rollo responda a tu pregunta. Saludos, |