Actualizado el 21 de Marzo del 2018 (Publicado el 29 de Diciembre del 2017)
1.032 visualizaciones desde el 29 de Diciembre del 2017
1,7 MB
218 paginas
Creado hace 12a (01/02/2012)
El Lenguaje de programaci´on C
Sistemas Operativos
Universidade da Coru˜na
Sistemas Operativos
El Lenguaje de programaci´on C
1 / 218
El Lenguaje de programaci´on C I
Introducci´on
Caracter´ısticas del lenguaje C
Estructura de un programa C
Primeros ejemplos
Compilaci´on de un programa
Directivas del precompilador
Depuraci´on
make
Ejercicios
Tipos, operadores y expresiones
Nombres de variables
Tipos y tama˜nos de datos
Constantes
Declaraciones de variables
Operadores aritm´eticos
Operadores de relaci´on y l´ogicos
Sistemas Operativos
El Lenguaje de programaci´on C
2 / 218
El Lenguaje de programaci´on C II
Conversiones de tipo
Operadores de bit
Incremento y decremento, asignaci´on y expresiones
Expresi´on condicional
Precedencia y orden e evaluaci´on
Ejercicios
Control de flujo
Sentencias y bloques
if else
else-if
switch
bucleswhile, for y do..while
break y continue
goto y etiquetas
Ejercicios
Funciones y estructura de un programa
Sistemas Operativos
El Lenguaje de programaci´on C
3 / 218
El Lenguaje de programaci´on C III
funciones
funciones que no devuelven enteros
Variables externas
Variables est´aticas
Variables registro
Inicializaci´on
Recursividad
EL preprocesador C
Ejercicios
Arrays y punteros
Punteros y direcciones
Punteros y argumentos a funciones
Operaciones sobre punteros
Arrays y punteros
Arrays de punteros
Arrays multidimensionales
Sistemas Operativos
El Lenguaje de programaci´on C
4 / 218
El Lenguaje de programaci´on C IV
Punteros y arrays multidimensionales
Argumentos en la l´ınea de comando
Punteros a funciones
Ejercicios
Estructuras
Estructuras
Operaciones sobre estructuras
Punteros a estructuras
Arrays de estructuras
Estructuras autoreferenciadas
Uniones
Campos de bits
typedef
Ejercicios
Biblioteca C
Biblioteca C
Sistemas Operativos
El Lenguaje de programaci´on C
5 / 218
El Lenguaje de programaci´on C V
Documentaci´on en l´ınea
Asignaci´on de memoria
Funciones de caracteres
Cadenas de caracteres
Entrada/salida con formato
Entrada/salida con formato a fichero
Entrada/salida con formato a memoria
Entrada/salida sin formato
Ejercicios
Herramientas
Valgrind
Sistemas Operativos
El Lenguaje de programaci´on C
6 / 218
Introducci´on
Tipos, operadores y expresiones
Control de flujo
Funciones y estructura de un programa
Arrays y punteros
Estructuras
Biblioteca C
Herramientas
Sistemas Operativos
El Lenguaje de programaci´on C
7 / 218
Introducci´on
Caracter´ısticas del lenguaje C
Estructura de un programa C
Primeros ejemplos
Compilaci´on de un programa
Directivas del precompilador
Depuraci´on
make
Ejercicios
Sistemas Operativos
El Lenguaje de programaci´on C
8 / 218
Caracter´ısticas del lenguaje C
(cid:73) Es el lenguaje de programaci´on de prop´osito general asociado
al sistema operativo UNIX
(cid:73) Es un lenguaje de medio nivel. Trata con objetos b´asicos
como car´acteres, n´umeros . . . ; tambi´en con bits y direcciones
de memoria
(cid:73) Posee una gran portabilidad
(cid:73) Se utiliza para la programaci´on de sistemas: construcci´on de
interpretes, compiladores, editores de texto, etc
Sistemas Operativos
El Lenguaje de programaci´on C
9 / 218
(cid:73) El lenguaje C consta de
(cid:73) El lenguaje C propiamente dicho: tipos de datos, expresiones y
estructuras de control
(cid:73) Extensiones en forma de macros y un amplio conjunto de
librer´ıas predefinidas
Sistemas Operativos
El Lenguaje de programaci´on C
10 / 218
Introducci´on
Caracter´ısticas del lenguaje C
Estructura de un programa C
Primeros ejemplos
Compilaci´on de un programa
Directivas del precompilador
Depuraci´on
make
Ejercicios
Sistemas Operativos
El Lenguaje de programaci´on C
11 / 218
Estructura de un programa C
(cid:73) Un programa e C consta de uno o m´as m´odulos (ficheros
fuentes)
(cid:73) Cada m´odulo puede contener
(cid:73) directivas del precompilador, p.e para “incluir” otros ficheros
(#include) y “definir” constantes y macros (#define)
(cid:73) declaraciones de variables y prototipos de funciones
(cid:73) una o m´as funciones
(cid:73) comentarios
(cid:73) Cada funci´on puede contener
(cid:73) directivas del precompilador
(cid:73) declaraciones
(cid:73) uno o m´as bloques
(cid:73) comentarios
Sistemas Operativos
El Lenguaje de programaci´on C
12 / 218
(cid:73) Cada bloque puede contener
(cid:73) directivas del precompilador
(cid:73) declaraciones
(cid:73) una o m´as sentencias
(cid:73) comentarios
Sistemas Operativos
El Lenguaje de programaci´on C
13 / 218
(cid:73) Cada sentencia debe estar terminada por ;
(cid:73) Cada bloque de sentencias se encierra entre llaves {. . . }
(cid:73) La funci´on denominada main es la que primero se ejecuta
(cid:73) Los comentarios pueden aparecer en cualquier lugar del c´odigo
y se insertan entre /* y */ as´ı
/* esto es un comentario*/
(cid:73) o entre // y final de l´ınea
// esto es otro comentario
Sistemas Operativos
El Lenguaje de programaci´on C
14 / 218
Introducci´on
Caracter´ısticas del lenguaje C
Estructura de un programa C
Primeros ejemplos
Compilaci´on de un programa
Directivas del precompilador
Depuraci´on
make
Ejercicios
Sistemas Operativos
El Lenguaje de programaci´on C
15 / 218
Primeros ejemplos
#include <stdio.h>
main()
{
printf("hola, primer programa en C\n");
}
Sistemas Operativos
El Lenguaje de programaci´on C
16 / 218
#include <stdio.h>
main()
{
int fahr, celsius;
int lower, upper, step;
lower=0;
upper=300;
step=20;
fahr=lower;
while(fahr<=upper)
{
celsius=5*(fahr-32)/9;
printf("%d\t%d\n",fahr,celsius);
fahr=fahr+step;
}
}
Sistemas Operativos
El Lenguaje de programaci´on C
17 / 218
Introducci´on
Caracter´ısticas del lenguaje C
Estructura de un programa C
Primeros ejemplos
Compilaci´on de un programa
Directivas del precompilador
Depuraci´on
make
Ejercicios
Sistemas Operativos
El Lenguaje de programaci´on C
18 / 218
Compilaci´on de un programa
(cid:73) Normalmente invocamos al compilador con cc o gcc (el
compilador de gnu)
(cid:73) Cuando tecleamos cc programa.c para generar un ejecutable
a partir de un fichero fuente obtenemos un ejecutable,
t´ıpicamente denominado a.out. Sin embargo se realizan tres
tareas
(cid:73) Paso por el preprocesador C. Es el que procesa las l´ıneas que
comienzan con # (pe #include, #define. . . ). Puede
invocarse directamente con cpp
(cid:73) La compilaci´on propiamente dicha. Genera ficheros objeto (.o)
a partir de los ficheros fuente. Puede invocarse como cc -c
(cid:73) El enlazado. Realizado por ld
Sistemas Operativos
El Lenguaje de programaci´on C
19 / 218
Introducci´on
Caracter´ısticas del lenguaje C
Estructura de un programa C
Primeros ejemplos
Compilaci´on de un programa
Directivas del precompilador
Depuraci´on
make
Ejercicios
Sistemas Operativos
El Lenguaje de programaci´on C
20 / 218
Directivas del precompilador
#include Incluye el fichero, cuyo nombre se indica, para su compilaci´on
con el resto del c´odigo
(cid:73) Si el nombre del fichero va entre <...> se busca en el
directorio include del sistema (/usr/include). Por ejemplo
#include <stdio.h>
hace que el fichero /usr/include/stdio.h se incluya en ese
punto para ser compilado con nuestro fichero fuente
(cid:73) El nombre se puede poner entre comillas (“) y el sistema lo
buscar´a en el directorio actual (tambi´en se puede poner una
ruta absoluta)
(cid:73) Los ficheros se suelen denominar .h y contienen declaraciones
de tipos, variables y prototipos de funciones (son ficheros
fuente que pueden verse)
Sistemas Operativos
El Lenguaje de programaci´on C
21 / 218
#define Define un s´ımbolo, es decir cada ocurrencia de ese s´ımbolo es
sustituida por su definici´on. Por ejemplo
(cid:73) El C distingue entre may´usculas y min´usculas, aunque la
costumbre es utilizar may´usculas para los s´ımbolos definidos
por el preprocesador
(cid:73) ejemplo
#define MAX 1024
hace que todas las ocurrencias de la cadena MAX dentro del
c´odigo son sustituidas por 1024
(cid:73) El c´odigo que se compila lleva 1024 donde iba MAX
(cid:73) Si MAX iba dentro de comillas ’’...‘‘, no se sustituye
Sistemas Operativos
El Lenguaje de programaci´on C
22 / 218
#include <stdio.h>
#define UPPER 300
#define LOWER 0
#define STEP 20
main()
{
int fahr, celsius;
fahr=LOWER;
while(fahr<=UPPER)
{
celsius=5*(fahr-32)/9;
printf("%d\t%d\n",fahr,celsius);
fahr=fahr+STEP;
}
}
Sistemas Operativos
El Lenguaje de programaci´on C
23 / 218
Introducci´on
Caracter´ısticas del lenguaje C
Estructura de un programa C
Primeros ejemplos
Compilaci´on de un programa
Directivas del precompilador
Depuraci´on
make
Ejercicios
Sistemas Operativos
El Lenguaje de programaci´on C
24 / 218
Depuraci´on
(cid:73) Para depurar programas disponemos del depurador, que nos
permite ejecutar los programas en un entorno controlado
(cid:73) Para usar el depurador
a Compilamos con cc -g
$gcc -g ejercicio1.c
b Invocamos el depurador pas´andole el ejecutable como
par´ametro
antonio@abyecto:~$ gdb a.out
GNU gdb (GDB) 7.3-debian
Copyright (C) 2011 Free Software Foundation, Inc.
.......
(gdb)
(cid:73) Dentro del depurador podemos establecer puntos de ruptura
con break (break numerol´ınea o break nombrefunci´on),
ejecutar paso a paso con step o next, ver variables con
display . . . . El depurador dispone de ayuda en l´ınea,
mediante help
Sistemas Operativos
El Lenguaje de programaci´on C
25 / 218
Introducci´on
Caracter´ısticas del lenguaje C
Estructura de un programa C
Primeros ejemplos
Compilaci´on de un programa
Directivas del precompilador
Depuraci´on
make
Ejercicios
Sistemas Operativos
El Lenguaje de programaci´on C
26 / 218
make
(cid:73) Facilita el proceso de generaci´on y actualizaci´on de un
programa.
(cid:73) Determina autom´aticamente qu´e partes de un programa
deben recompilarse ante una actualizaci´on de algunos m´odulos
y las recompila.
(cid:73) Se crean un archivo Makefile con las dependencias entre los
ficheros: un fichero debe actualizarse si alguna de sus
dependencias
Comentarios de: El Lenguaje de programación C (0)
No hay comentarios