Actualizado el 17 de Febrero del 2020 (Publicado el 29 de Diciembre del 2017)
2.559 visualizaciones desde el 29 de Diciembre del 2017
297,2 KB
31 paginas
Creado hace 20a (01/10/2004)
Curso de programación en C.
Miquel A Garcies. Servei de Càlcul i Informatització. UIB.
http://massanella.uib.es/c-calculo/scimgs/cursc/index.html
INDICE
Introducción...................................................................................................................... 2
Programas. ........................................................................................................................ 2
El desarrollo de un programa. .......................................................................................... 4
Tipos básicos y variables.................................................................................................. 5
Funciones.......................................................................................................................... 6
Expresiones y operadores. ................................................................................................ 7
Conversión de tipos. ......................................................................................................... 9
Control de flujo............................................................................................................... 10
Definición y prototipos de funciones.............................................................................. 12
Construcción de tipos. .................................................................................................... 13
Ámbito de funciones y variables. ................................................................................... 17
Punteros. ......................................................................................................................... 18
El preprocesador. ............................................................................................................ 21
Funciones de entrada y salida por pantalla..................................................................... 22
Funciones de asignación de memoria............................................................................. 25
Funciones matemáticas................................................................................................... 26
Operaciones con ficheros................................................................................................ 27
Bibliografía y referencias. .............................................................................................. 31
Miquel A Garcies. Servei de Càlcul i Informatització. UIB
2
Introducción.
C es un lenguaje de programación de propósito general que ofrece economía sintáctica, control de flujo y
estructuras sencillas y un buen conjunto de operadores. No es un lenguaje de muy alto nivel y más bien
un lenguaje pequeño, sencillo y no está especializado en ningún tipo de aplicación. Esto lo hace un
lenguaje potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente. En poco
tiempo, un programador puede utilizar la totalidad del lenguaje.
Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX, puesto que fueron desarrollados
conjuntamente. Sin embargo, este lenguaje no está ligado a ningún sistema operativo ni a ninguna
máquina concreta. Se le suele llamar lenguaje de programación de sistemas debido a su utilidad para
escribir compiladores y sistemas operativos, aunque de igual forma se pueden desarrollar cualquier tipo
de aplicación.
La base del C proviene del BCPL, escrito por Martin Richards, y del B escrito por Ken Thompson en
1970 para el primer sistema UNIX en un DEC PDP-7. Estos son lenguajes sin tipos, al contrario que el C
que proporciona varios tipos de datos. Los tipos que ofrece son caracteres, números enteros y en coma
flotante, de varios tamaños. Además se pueden crear tipos derivados mediante la utilización de punteros,
vectores, registros y uniones. El primer compilador de C fue escrito por Dennis Ritchie para un DEC
PDP-11 y escribió el propio sistema operativo en C.
C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoría de
computadoras actuales, como son los caracteres, números y direcciones. Estos tipos de datos pueden ser
manipulados por las operaciones aritméticas que proporcionan las computadoras. No proporciona
mecanismos para tratar tipos de datos que no sean los básicos, debiendo ser el programador el que los
desarrolle. Esto permite que el código generado sea muy eficiente y de ahí el éxito que ha tenido como
lenguaje de desarrollo de sistemas. No proporciona otros mecanismos de almacenamiento de datos que no
sea el estático y no proporciona mecanismos de entrada ni salida. Ello permite que el lenguaje sea
reducido y los compiladores de fácil implementación en distintos sistemas. Por contra, estas carencias se
compensan mediante la inclusión de funciones de librería para realizar todas estas tareas, que
normalmente dependen del sistema operativo.
Originariamente, el manual de referencia del lenguaje para el gran público fue el libro [1] de Kernighan y
Ritchie, escrito en 1977. Es un libro que explica y justifica totalmente el desarrollo de aplicaciones en C,
aunque en él se utilizaban construcciones, en la definición de funciones, que podían provocar confusión y
errores de programación que no eran detectados por el compilador. Como los tiempos cambian y las
necesidades también, en 1983 ANSI establece el comité X3J11 para que desarrolle una definición
moderna y comprensible del C. El estándar está basado en el manual de referencia original de 1972 y se
desarrolla con el mismo espíritu de sus creadores originales. La primera versión de estándar se publicó en
1988 y actualmente todos los compiladores utilizan la nueva definición. Una aportación muy importante
de ANSI consiste en la definición de un conjunto de librerías que acompañan al compilador y de las
funciones contenidas en ellas. Muchas de las operaciones comunes con el sistema operativo se realizan a
través de estas funciones. Una colección de ficheros de encabezamiento, headers, en los que se definen
los tipos de datos y funciones incluidas en cada librería. Los programas que utilizan estas bibliotecas para
interactuar con el sistema operativo obtendrán un comportamiento equivalente en otro sistema.
Programas.
La mejor forma de aprender un lenguaje es programando con él. El programa más sencillo que se puede
escribir en C es el siguiente:
main()
{
}
Miquel A Garcies. Servei de Càlcul i Informatització. UIB
3
Como nos podemos imaginar, este programa no hace nada, pero contiene la parte más importante de
cualquier programa C y además, es el más pequeño que se puede escribir y que se compile correctamente.
En el se define la función main, que es la que ejecuta el sistema operativo al llamar a un programa C. El
nombre de una función C siempre va seguida de paréntesis, tanto si tiene argumentos como si no. La
definición de la función está formada por un bloque de sentencias, que esta encerrado entre llaves {}.
Un programa algo más complicado es el siguiente:
#include <stdio.h>
main()
{
printf("Hola amigos!\n");
}
Con el visualizamos el mensaje Hola amigos! en el terminal. En la primera línea indica que se tengan
en cuenta las funciones y tipos definidos en la librería stdio (standard input/output). Estas definiciones
se encuentran en el fichero header stdio.h. Ahora, en la función main se incluye una única sentencia
que llama a la función printf. Esta toma como argumento una cadena de caracteres, que se imprimen
van encerradas entre dobles comillas " ". El símbolo \n indica un cambio de línea. Hay un grupo de
símbolos, que son tratados como caracteres individuales, que especifican algunos caracteres especiales
del código ASCII. Los más importantes son:
\a
\b
\f
\n
\r
\t
\v
\\
\'
\"
alert
backspace
formfeed
newline
carriage return
horizontal tab
vertical tab
backslash
single quote
double quote
\OOO
\xHHH
visualiza un carácter cuyo código ASCII es OOO en octal.
visualiza un carácter cuyo código ASCII es HHH en hexadecimal.
Miquel A Garcies. Servei de Càlcul i Informatització. UIB
4
Las funciones de entrada y salida y los formatos utilizados los explicaremos con más detalle en otro
capítulo.
El desarrollo de un programa.
Un programa C puede estar formado por diferentes módulos o fuentes. Es conveniente mantener los
fuentes de un tamaño no muy grande, para que la compilación sea rápida. También, al dividirse un
programa en partes, puede facilitar la legibilidad del programa y su estructuración. Los diferentes fuentes
son compilados de forma separada, únicamente los fuentes que han sido modificados desde la última
compilación, y después combinados con las librerías necesarias para formar el programa en su versión
ejecutable.
Los comandos necesarios para compilar, linkar y ejecutar un programa dependen del sistema operativo y
debemos dirigirnos a los manuales correspondientes para conocer la sintaxis exacta. Como forma más
común podemos dar la siguiente:
cc prog
cc modulo1, modulo2
link prog, modulo1, modulo2
prog
Creación de un programa en C.
Miquel A Garcies. Servei de Càlcul i Informatització. UIB
5
Tipos básicos y variables.
Los tipos de datos básicos definidos por C son caracteres, números enteros y números en coma flotante.
Los caracteres son representados por char, los enteros por short, int, long y los números en coma
flotante por float y double. Los tipos básicos disponibles y su tamaño son:
char
Carácter
(normalmente 8 bits)
short
Entero corto con signo
(normalmente 16 bits)
int
Entero con signo
(depende de la implementación)
unsigned
Entero sin signo
(depende de la implementación)
long
Entero largo con signo
(normalmente 32 bits)
float
Flotante simple
(normalmente 32 bits)
double
Flotante doble
(normalme
Comentarios de: Curso de programación en C (0)
No hay comentarios