Diapositivas Boletín 2 - Departamento de Lenguajes y Sistemas

Anuncio
Introducción a C
Departamento
D
t
t de
d Lenguajes
L
j y
Sistemas Informáticos
Í di
Índice
1.
2.
3.
4.
El lenguaje de programación C
1. Estructura de un programa
2. Tipos básicos
3. Cadenas de caracteres
4. Entrada/Salida
El compilador GNU de C
Argumentos de línea de comandos
Comando make
Departamento de Lenguajes y Sistemas
Informáticos
2
Ejemplo de un programa
Declaración de importaciones
Definición de constantes
Declaración de tipos
Prototipo de funciones
e c ó de la
a función
u có p
principal
c pa ((main)
a )
Definición
{
Declaración de variables locales
Instrucciones ejecutables
}
Definición de funciones
Departamento de Lenguajes y Sistemas
Informáticos
3
Ejemplo de un programa
#include
#i
l d <
<stdio.h>
tdi h>
#include <math.h>
#define PI 3.14159
Directivas del preprocesador
/* Comentarios */
float obtenerValor(void);
float areaCirculo(float);
Prototipo de funciones
int main (void) {
float radio, area; Declaración de variables locales
radio = obtenerValor()
obtenerValor();
area = areaCirculo(radio);
printf (“El área del círculo es %f”, area);
return 0;
}
float obtenerValor() { …}
float areaCirculo(float radio) {…}
Función principal
Definición
e
c ó de funciones
u c o es
Departamento de Lenguajes y Sistemas
Informáticos
4
Estructura de un programa
Fichero de cabecera:
#ifndef __MINMAX__
#define __MINMAX__
int max( int value1, int value2, int value3);
int min( int value1, int value2, int value3);
#endif
• Prototipo de funciones
• Declaración de constantes
• Declaración de tipos
minmax.h
#include "minmax.h"
int min( int value1, int value2, int value3)
{
int minimum = value1;
if (value2 < minimum) minimum = value2;
if (value3 < minimum) minimum = value3;
return minimum;
}
min.c
#include "minmax.h"
int max( int value1, int value2, int value3)
{
int maximum = value1;
if (value2 > maximum) maximum = value2;
if (value3 > maximum) maximum = value3;
return maximum;
}
max.c
Departamento de Lenguajes y Sistemas
Informáticos
5
Tipos
i
básicos
b i
‡
‡
‡
‡
‡
‡
‡
‡
‡
char
h a = ‘b’;
‘b’
short a=0;
int i,j=0;
long l = 0;
float f =1.5;
double d=3.14;
/* 1 byte
b t */
/* 2 bytes */
/* 4 bytes */
/* 4 bytes en x86 – Depende del tamaño de palabra del procesador */
/* 4 bytes */
/* 8 bytes */
char cadena[SIZE_MAX];
enum {{Falso,, Cierto};
};
struct
{
char nombre[20];
char apellidos[50];
int edad;
};
Departamento de Lenguajes y Sistemas
Informáticos
6
Cadenas
d
dde caracteres
#define MAXCAR 256
typedef char Cadena[MAXCAR];
‡
Posibles declaraciones:
„
„
„
„
„
‡
char cadena[MAXCAR]={‘H’,’o’,’l’,’a’,’\0’};
char cadena[MAXCAR] = “Hola”;
char cadena[] = “Hola”;
Hola ;
char *cadena = “Hola”;
Cadena cadena=“Hola”;
Biblioteca p
para el manejo
j de cadenas: string.h
g
Departamento de Lenguajes y Sistemas
Informáticos
7
Entrada/Salida
d / lid
‡
Entrada/Salida
/S
con formato
f
„ printf(“formato”, arg1, arg2, …, argn): Escribe una
li t
lista
d
de
d t
datos
d
de
acuerdo
d
con un formato
f
t
preestablecido.
„ scanf(“formato”,
f(“f
t ” arg1, arg2, …, argn):
) Lee
L
valores
l
de la entrada estándar y asignarlos a las variables
especificadas como argumentos.
argumentos
%c
Carácter
%ld
Entero largo
%lf
Real (double)
%d
Entero
%f
Real (float)
%s
Cadena de caracteres
Departamento de Lenguajes y Sistemas
Informáticos
8
Ell compilador
il d GNU de
d C
Archivos de biblioteca
prog.c
Compilar
Enlazar
prog.o
prog
Archivos incluidos
(Ej. stdio.h)
Departamento de Lenguajes y Sistemas
Informáticos
9
Ell compilador
il d GNU de
d C
‡
gcc: Compilador
C
de programas escritos en lenguaje C
y C++.
‡
Compilar:
„
‡
gcc -c fuente
f
t 1.c fuente
f
t 2.c … fuente
f
t n.c
E l
Enlazar:
„
gcc -o binario fuente1.o fuente2.o … fuenten.o
Departamento de Lenguajes y Sistemas
Informáticos
10
Argumentos de línea de comandos
i t main
int
i (int
(i t argc, char
h *argv[])
*
[])
{
…
return 0;
}
‡
argc: Número de argumentos + 1 .
‡
argv: Array de cadenas de caracteres (argumentos).
argv[0] = nombre con el que se invoca al programa.
‡
Ejemplo: >cat -b
b f1.txt
f1 txt f2.txt
f2 txt f3.txt
f3 txt
„
argc =5
„
argv[0]=“cat”, argv[1]=“-b”, argv[2]=“f1.txt”, argv[3]=“f2.txt”, argv[4]=“f3.txt”
Departamento de Lenguajes y Sistemas
Informáticos
11
Comando
d make
k
‡
El comando make permite agilizar la compilación en proyectos de cierta
envergadura facilitando la gestión automática de las dependencias de
p
compilación.
‡
Hace uso de ficheros de configuración denominados “Makefile” o
makefile compuestos por reglas.
reglas Una regla está compuesta por:
“makefile”
„
„
„
‡
Una etiqueta: Distingue un grupo de acciones a realizar
Requisitos: Ficheros necesarios para llevar a cabo las acciones.
Acciones: Comandos
C
a ejecutar
make comprueba automáticamente si los ficheros requeridos están
actualizados ejecutando la acción apropiada en caso de que no lo estén.
(Ej. Compilación de un fichero fuente para obtener el código objeto)
Departamento de Lenguajes y Sistemas
Informáticos
12
Comando
d make
k
‡
Ejemplo:
mensaje:
j mensaje.o
j
salida.o
lid
gcc -o mensaje mensaje.o salida.o
mensaje.o: mensaje.c salida_alt.h
gcc -c -g
g
g mensaje.c
j
salida.o: salida.c salida_alt.h
gcc -c -g salida.c
lid
Departamento de Lenguajes y Sistemas
Informáticos
13
Descargar