12/08/2010
Introducción al Lenguaje C
Historia del C Creado en 1972 por Brian Kernighan y Dennis Ritchie, dentro del proyecto UNIX Se propagó rápidamente como lenguaje predilecto para programación de sistemas Estándar ANSI en los ochenta En 1985 se inventa el C C++,, sucesor de C con orientación a objetos
1
12/08/2010
Características del lenguaje Lenguaje de programación estructurada Extremadamente simple Permite generar código pequeño y eficiente Poca comprobación de errores en el compilador (ej. tipado débil, punteros) Impone I poca di disciplina, i li da d mucha h libertad lib t d all programador
Un programa muy simple #include
Instrucción al preprocesador
main() { /* un comentario 1 línea */ printf (“hola, mundo\n”); // comentario varias líneas
Todo programa debe tener una función main() Convocación de función
}
2
12/08/2010
Modelo de compilación en C
Modelo de compilación en C El preprocesador
El preprocesador transforma el programa fuente de esta forma: Elimina los comentarios Incluye en el fuente el contenido de los archivos declarados con #include (a estos archivos se les suele llamar cabeceras)
Sustituye en el fuente las macros declaradas con #define (ej. #define CIEN 100).
3
12/08/2010
Modelo de compilación en C El compilador
El compilador convierte el fuente en un archivo en lenguaje de máquina: archivo objeto. Algunos compiladores pasan por una fase intermedia en lenguaje ensamblador.
Modelo de compilación en C El enlazador (linker (linker))
El enlazador l d genera ell archivo h ejecutable bl binario, b a partir del contenido de los archivos objetos y de las bibliotecas. Las bibliotecas contienen el código de funciones precompiladas, a las que el archivo fuente llama.
4
12/08/2010
Modelo de compilación en C Bibliotecas estandard La L especificación ifi ió d dell lenguaje l j C no incluye i l manejo j d de cadenas, entrada/salida, etc. Por ello, recurre bastante a funciones de biblioteca (definidas en las bibliotecas estándar): entrada/salida: printf, scanf, fopen, fclose... cadenas: strcpy, strcpy strcat, strcat strlen... strlen memoria: malloc, free, memcpy...
Estructura de un programa #include float funci(int i); main() { inclusión de archivos cabeceras
int j; char a;
declaraciones de tipos y variables
j = 2; printf (“%f”, funci(j)); } definiciones de funciones
float funci(int i) { return( i /100); }
5