programacion

Páginas: 6 (1416 palabras) Publicado: 21 de mayo de 2013
Se denomina header file, al español fichero/archivo (de) cabecera, o include file, al español fichero de inclusión, en ciencias de computación, especialmente en el ámbito de los lenguajes de programación C y C++, al archivo, normalmente en forma de código fuente, que el compilador incluye de forma automática al procesar algún otro archivo fuente. Típicamente los programadores especifican lainclusión de los header files por medio de pragmas al comienzo (head o cabecera) de otro archivo fuente.
Un header file contiene, normalmente, una declaración directa de clases, subrutinas, variables, u otros identificadores. Aquellos programadores que desean declarar identificadores estándares en más de un archivo fuente pueden colocar esos identificadores en un único header file, que se incluirácuando el código que contiene sea requerido por otros archivos.
La biblioteca estándar de C y la biblioteca estándar de C++ tradicionalmente declaran sus funciones estándar en header files.
Motivación [editar]

En la mayoría de lenguajes de programación modernos, los programadores pueden dividir los programas en componentes de menor tamaño (como pueden ser clases y subrutinas) y distribuir esoscomponentes entre muchas unidades por traducir (típicamente en forma de archivos), que el sistema puede compilar de forma autónoma. Si una subrutina se tiene que usar al margen de la unidad por traducir donde ha sido definida, se tiene que introducir el concepto de declaración directa o prototipos de funciones. Por ejemplo, una función definida así en un archivo fuente:
int add(int a, int b)
{return a + b;
}
puede declararse (con un prototipo de función) y ser referida desde un segundo archivo fuente como sigue:
int add(int, int);

int triple(int x)
{
return add(x, add(x, x));
}
Sin embargo en esta simple ilustración se requiere que el programador mantenga la declaración de la función de add en dos sitios — en el archivo que contiene su implementación y enel archivo que usa la funcionalidad. Si la definición de la función llega a alterarse, entonces el programador debe actualizar todos los prototipos repartidos a lo largo del programa. Esto es necesario porque la implementación de ambos, C y C++ han de diagnosticar todas las violaciones de lo que en C++ se llama "one definition rule" (ODR), al español "regla de una única definición". De hecho, lamayoría de ellos se sirven de un enlazador para realizar esta labor. El enlazador, sin embargo, suele conocer, de forma muy limitada los tipos usados en los programas. Por ello, algunas de las violaciones de ODR no se detectan a la hora de implementar el lenguaje. Como resultado, es responsabilidad del programador el mantener la coherencia de todas las declaraciones que cruzan las fronteras de unaunidad por traducir. Buscar todas estas declaraciones de una entidad externa y verficar que son compatibles de forma manual es una tarea ardua. (Nótese que C no define el término "one definition rule" — es específico del lenguaje C++. Si declaraciones de la misma entidad en muchos archivos fuentes de C son diferentes, la función no funcionará de forma adecuada y puede llegarse a un comportamientoimpredecible, independientemente de la regla que se esté violando.)
Para entender una violación ODR, considérese el siguiente código (correcto):
/* File print-heading.c */
#include

void print_heading(void)
{
printf("standard heading\n");
}
/* File main.c */
void print_heading(void);

int main(void)
{
print_heading();
return 0;
}
La unidad por traducirrepresentada por el archivo fuente main.c referencia a la función print_heading() que está definida en otra unidad por traducir (print-heading.c). De acuerdo con las reglas de C99, los programadores deben declarar una función externa antes del primer uso. Para cumplir con este requisito el archivo main.c declara la función en la primera línea. Esta versión del código funciona de forma correcta....
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programación
  • Programacion
  • Programacion
  • Programación
  • Programacion
  • Programacion
  • Programacion
  • Programacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS