PDF de programación - Programación en C

Imágen de pdf Programación en C

Programación en Cgráfica de visualizaciones

Publicado el 2 de Diciembre del 2018
466 visualizaciones desde el 2 de Diciembre del 2018
422,9 KB
74 paginas
Creado hace 22a (01/12/2001)
Programacin en C

Autor: J. Carlos Lpez Ardao

Diciembre de 2001

˝ndice

1. Introduccin

2. Estructura y fases de creacin de un programa C

3. Generalidades

3.1. Reglas de Æmbito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Palabras clave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3. Constantes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4. Variables en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5. Operadores en C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .
3.5.1. Operadores aritmØticos
3.5.2. Operadores relacionales
. . . . . . . . . . . . . . . . . . . . . .
3.5.3. Operadores lgicos . . . . . . . . . . . . . . . . . . . . . . . . .
3.5.4. Operadores a nivel de bit
. . . . . . . . . . . . . . . . . . . . .

4. Directivas del preprocesador

4.1. Denicin de macros . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.
4.3. Compilacin condicional
. . . . . . . . . . . . . . . . . . . . . . . . . .

Inclusin de cheros

5. Tipos de datos en C

5.1. Tipos bÆsicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2. El tipo direccin (punteros) . . . . . . . . . . . . . . . . . . . . . . .
5.3. Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4. Relacin entre punteros y matrices . . . . . . . . . . . . . . . . . . . .
5.4.1. Punteros a punteros. Matrices de punteros . . . . . . . . . . . .
5.5. El modicador const . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6. El tipo void . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.7. Conversin de tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.7.1. Conversin de tipos explcita: El cast . . . . . . . . . . . . . . .

6. Estructuras de datos

6.1. Estructuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2. Uniones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3. Enumeraciones
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4. Creacin de tipos mediante typedef . . . . . . . . . . . . . . . . . . .

7. Funciones en C

7.1. La funcin main()
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2. Reglas de Æmbito de las funciones: Ficheros de cabecera . . . . . . . .
7.3. Ficheros de tipos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4. Libreras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5. Punteros a funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8. Tipos de variables. Reglas de Æmbito

8.1. Variables Locales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2. Variables Globales
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3. ParÆmetros Formales . . . . . . . . . . . . . . . . . . . . . . . . . . . .

i

1

1

3
4
6
6
7
8
8
8
9
9

9
10
11
12

13
13
14
15
16
17
18
19
19
20

21
21
23
24
25

26
27
28
30
31
32

33
33
34
35

9. Control de ujo en C

9.1. Sentencia condicional: if
. . . . . . . . . . . . . . . . . . . . . . . . .
9.2. Sentencia switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.3. bucle while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.4. Sentencia do-while . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.5. bucles innitos con while y do-while . . . . . . . . . . . . . . . . . .
9.6. Bucle for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7. Sentencia break . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.8. Sentencia continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10.Entrada/Salida en C

10.1. E/S por dispositivo estÆndar

. . . . . . . . . . . . . . . . . . . . . . .
10.1.1. Salida formateada: Funcin printf() . . . . . . . . . . . . . .
10.1.2. Entrada formateada: Funcin scanf() . . . . . . . . . . . . . .
10.2. E/S de chero . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

11.Asignacin dinÆmica de memoria

12.Otras funciones de la librera estÆndar

12.1. Manejo de cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
12.2. Funciones de caracteres
12.3. Utilidades generales
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.4. La librera matemÆtica . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.5. Seæales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . .
12.5.1. Manejo de seæales: Instalacin de un handler
. . . . . . . . . . . . . . . . . .
12.5.2. Posibles problemas con seæales
12.5.3. Generacin de seæales
. . . . . . . . . . . . . . . . . . . . . . .
12.5.4. Temporizadores . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.6. Fecha y hora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12.7. Funciones œtiles en la red . . . . . . . . . . . . . . . . . . . . . . . . .

13.Herramientas œtiles para la programacin en C

13.1. El editor emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.2. Compilacin con make . . . . . . . . . . . . . . . . . . . . . . . . . . .
13.3. El manual en lnea: man . . . . . . . . . . . . . . . . . . . . . . . . . .
13.4. El depurador: ddd
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14.Comandos Unix/Linux mÆs importantes

37
38
38
40
41
41
41
42
43

43
43
44
46
48

50

51
51
54
54
55
56
57
58
59
59
61
62

63
63
65
67
68

68

ii

1.

Introduccin

El lenguaje C se conoce como un lenguaje de medio nivel, pues podramos
situarlo entre los lenguajes de bajo nivel o de mÆquina (ensamblador) y los de
alto nivel como el PASCAL, por ejemplo.

Un lenguaje de medio nivel nos ofrece un conjunto bÆsico de sentencias de
control y de manipulacin de datos que nos permitirÆ construir sentencias y
estructuras de nivel mÆs alto.

En la actualidad existen numerosos compiladores de C, todos ellos con sus
peculiaridades, sin embargo, prÆcticamente todos son compatibles con el C nor-
malizado por ANSI, el ANSI C, en el que nos centraremos partir de ahora.

Entre las caractersticas de C podemos citar:

32 palabras clave (BASIC 128; TPASCAL 48).

Eciencia de ejecucin del cdigo generado (entre los lenguajes de bajo y
alto nivel).

Portabilidad.

No impone tantas restricciones como los lenguajes de alto nivel, dando
mÆs libertad al programador.

C es un lenguaje estructurado como PASCAL, y como tal, un programa en
C cumple todas las caractersticas de la programacin estructurada. De hecho,
en C todo el cdigo se estructura en funciones totalmente independientes entre
s. Incluso el programa principal se incluye en una funcin especial denominada
main().

A pesar de ello, todas las ventajas enumeradas lo convierten en un lenguaje
que requiere mayor experiencia del programador, puesto que los compiladores
detectan muchos menos errores y dan mucha mÆs libertad al programador que
los lenguajes de alto nivel, fundamentalmente en lo que se reere a la construc-
cin y manipulacin de estructuras de datos.

2. Estructura y fases de creacin de un programa

C

Un programa C estÆ formado exclusivamente por funciones independientes.
A diferencia de lenguajes como PASCAL, en C no se puede crear una funcin
dentro de otra funcin.

El cdigo de un programa C suele distribuirse entre varios cheros fuente
(con extensin .c), denominados mdulos. As, habitualmente un programa
de cierto tamaæo constarÆ de un mdulo que contiene el programa principal
(ubicado en una funcin especial denominada main()), y de otros mdulos con
el cdigo de diversas funciones agrupadas segœn algœn criterio, o con deniciones
de tipos utilizados. AdemÆs, todos los compiladores ponen a disposicin del
programador una enorme cantidad de funciones, accesibles por medio de libreras
(ver seccin 7.4). De hecho, si el programa es sucientemente pequeæo puede
constar de un slo mdulo, el principal, que haga uso de las libreras.

En la Figura se muestran las 4 fases en la creacin de un programa ejecutable

desarrollado en el lenguaje C.

1

Codigo
fuente C
original

fichero.c

Preprocesador

cpp (gcc -E -o fichero.i)

Codigo
C puro

fichero.i

Compilador

cc1 (gcc -S)

Codigo fuente
Ensamblador

fichero.s

Ensamblador

as (gcc -c)

Codigo
Objeto

fichero.o

Enlazador
(Linker)

ld (gcc)

Ejecutable

a.out (-o fichero)

Preprocesado: El cdigo C desarrollado es enviado al preprocesador que
interpreta y ejecuta todas las directivas de preprocesado (ver seccin 4).
De esta tarea se encarga el programa cpp, que tambiØn puede ser invocado
con la opcin de parada -E del compilador (indicando adicionalmente -o
fichero.i).

Compilacin: El cdigo C generado por el preprocesador es analizado
sintÆctica, lØxica y semÆnticamente por el compilador. Si el anÆlisis es
correcto, se genera el correspondiente cdigo en lenguaje ensamblador.
Adicionalmente, el compilador suele realizar un importante nœmero de
optimizaciones. Esta tarea es realizada por el programa cc1, que tambiØn
puede ser invocado con la opcin de parada -S del compilador (por defecto
se genera fichero.s, no siendo necesaria la opcin -o).

Ensamblado: El cdigo en ensamblador es transformado en cdigo bi-
nario (objeto), tarea que
  • Links de descarga
http://lwp-l.com/pdf14389

Comentarios de: Programación en C (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad