Lenguaje C

6
Lenguaje C Creado entre 1970 y 1972 por Brian Kernighan y Dennis Ritchie para escribir el código del sistema operativo UNIX. Desde su nacimiento se fue implantando como el lenguaje de programación de sistemas favorito para muchos programadores, sobre todo por ser un lenguaje que conjugaba la abstracción de los lenguajes de alto nivel con la eficiencia del lenguaje máquina. Los programadores de sistemas que trabajaban sobre MS-DOS y Macintosh también utilizaban C, con lo cual la práctica totalidad de aplicaciones de sistema para microordenadores y para sistemas UNIX está escrito en este lenguaje. Fases de desarrollo de un programa en C El preprocesador Transforma el programa fuente, convirtiéndolo en otro archivo fuente “predigerido”. Las transformaciones incluyen: Eliminar los comentarios. Incluir en el fuente el contenido de los ficheros declarados con #include <fichero> (a estos ficheros se les suele llamar cabeceras) Sustituir en el fuente las macros declaradas con #define (ej. #define CIEN 100) El compilador Convierte la fuente entregado por el preprocesador en un archivo en lenguaje máquina: fichero objeto. Algunos compiladores pasan por una fase intermedia en lenguaje ensamblador. El enlazador Un fichero objeto es código máquina, pero no se puede ejecutar, porque le falta código que se encuentra en otros archivos binarios. El enlazador genera el ejecutable binario, a partir del contenido de los ficheros objetos y de las bibliotecas. Las bibliotecas contienen el código de funciones precompiladas, a las que el archivo fuente llama (por ejemplo printf). Componentes del lenguaje C Estructuras de datos literales tipos básicos (todos numéricos) tipos enumerados

description

PROGRAMACIÓN

Transcript of Lenguaje C

Lenguaje CCreado entre 1970 y 1972 por Brian Kernighan y Dennis Ritchie para escribir el cdigo del sistema operativo UNIX. Desde su nacimiento se fue implantando como el lenguaje de programacin de sistemas favorito para muchos programadores, sobre todo por ser un lenguaje que conjugaba la abstraccin de los lenguajes de alto nivel con la eficiencia del lenguaje mquina. Los programadores de sistemas que trabajaban sobre MS-DOS y Macintosh tambin utilizaban C, con lo cual la prctica totalidad de aplicaciones de sistema para microordenadores y para sistemas UNIX est escrito en este lenguaje.Fases de desarrollo de un programa en CEl preprocesadorTransforma el programa fuente, convirtindolo en otro archivo fuente predigerido. Las transformaciones incluyen: Eliminar los comentarios. Incluir en el fuente el contenido de los ficheros declarados con #include (a estos ficheros se les suele llamar cabeceras) Sustituir en el fuente las macros declaradas con #define (ej. #define CIEN 100)El compiladorConvierte la fuente entregado por el preprocesador en un archivo en lenguaje mquina: fichero objeto. Algunos compiladores pasan por una fase intermedia en lenguaje ensamblador. El enlazadorUn fichero objeto es cdigo mquina, pero no se puede ejecutar, porque le falta cdigo que se encuentra en otros archivos binarios. El enlazador genera el ejecutable binario, a partir del contenido de los ficheros objetos y de las bibliotecas. Las bibliotecas contienen el cdigo de funciones precompiladas, a las que el archivo fuente llama (por ejemplo printf).Componentes del lenguaje CEstructuras de datos literales tipos bsicos (todos numricos) tipos enumerados tipos estructurados (struct, union) punteros y vectoresConstrucciones algortmicas construcciones condicionales (if,switch) construcciones iterativas(while,for,do...while) subrutinas (funciones)

Adems de lo anterior, el C tiene otros elementos: comentarios inclusin de ficheros macros compilacin condicionalEl preprocesador es quien normalmente se encarga de interpretar estas construcciones.Ejemplo de un programa en C#include main(){/* Escribe un mensaje */printf (Hola, mundo\n);}BibliotecasEl lenguaje C es muy simple. Carece de tipos y servicios que forman parte de otros lenguajes. No tiene tipo booleano, ni manejo de cadenas, ni manejo de memoria dinmica. No obstante, el estndar de C define un conjunto de bibliotecas de funciones, que necesariamente vienen con todo entorno de compilacin de C y que satisfacen estos servicios elementales. Las interfaces de estos servicios vienen definidas en unos ficheros cabeceras (header files ). El nombre de estos ficheros suele terminar en .hAlgunos de los servicios proporcionados por las bibliotecas estndares son: entrada y salida de datos (stdio.h) manejo de cadenas (string.h) memoria dinmica (stdlib.h) rutinas matemticas (math.h)Manipulacin bsica de datos Literales: Un dato escrito directamente (ej. 1234, hola, etc.) Tipos bsicos: El C dispone de estos tipos bsicos:

intenteros (nmeros enteros positivos y negativos)

charcaracteres (letras)

floatnmeros en coma flotante (nmeros reales)

doublenmeros en coma flotante de doble precisin

voidno-tipo (se emplea con punteros)

Declaraciones de variables: Las variables se utilizan para guardar datos dentro del programa. Hay que declarar las variables antes de usarlas. Declaracin:tipo nombre ;Ejemplo:int pepe;Las variables globales se declaran justo antes de main().

Rangos de valores y tipos modificados: Rango de los enteros Una variable entera acepta valores positivos y negativos dentro de un rango determinado, que depende de la plataforma y del compilador.

ModificadorSignificado

shortentero corto (rango ms pequeo)

longentero largo (rango ms amplio)

unsignedentero sin signo (0..N)

signedEntero con signo (-N-1 .. +N)

Tipo char - El tipo char permite manejar caracteres (letras), aunque se trata de un tipo numrico. Normalmente el rango de valores va de 128 a +127 (signed char), o bien de 0 a 255 (unsigned char).

Nombres de variables (identificadores): Un identificador es un nombre que define a una variable, una funcin o un tipo de datos. Un identificador vlido ha de empezar por una letra o por el carcer de subrayado _, seguido de cualquier cantidad de letras, dgitos o subrayados. OJO: Se distinguen maysculas de minsculas. No se pueden utilizar palabras reservadas como int, char o while.

Expresiones: Los datos se manipulan mediante expresiones, que sirven para calcular valores.OperadorSignificado

+suma

-resta

*producto

/divisin

%mdulo (resto de la divisin)

Asignaciones: La forma de dar valor a una variable es - variable = expresin; - Se le llama asignacin.

Operadores booleanos: Operadores avanzadosFuncionesLas funciones son porciones de cdigo que devuelven un valor. Permiten descomponer el programa en mdulos que se llaman entre ellos. En C no existe diferencia entre funciones y procedimientos: a todas las subrutinas se las llama funciones.La definicin de una funcin especfica lo siguiente: nombre de la funcin nmero de argumentos que lleva y tipo de cada uno de ellos tipo de datos que devuelve Cuerpo de la funcin (el cdigo que ejecuta)Sintaxis:tipo nombre ( arg1, arg2, ... ){... cuerpo ... }Cada argumento se especifica como en una declaracin de variable. El cuerpo de la funcin debera contener una sentencia donde se devuelve el resultado de la funcin, que se hace de esta forma: return expresin;La funcin devolver el resultado de la expresin.Ejemplo de funcinFuncin que devuelve la suma de dos enteros. int suma ( int a, int b ){ return a+b;}PunterosEl tipo de datos ms caracterstico del C son los punteros. Un puntero contiene un valor que es la direccin en memoria de un dato de cierto tipo. Los punteros se emplean en C para muchas cosas, por ejemplo recorrer vectores, manipular estructuras creadas dinmicamente, pasar parmetros por referencia a funciones, etc. Cuando se declara una variable, se reserva un espacio en la memoria para almacenar el valor de la variable. Ese espacio en memoria tiene una direccin.Un puntero es una direccin dentro de la memoria, o sea, un apuntador a donde se encuentra una variable.

Operaciones bsicasDeclaracinLos punteros se declaran con un asterisco, de esta forma: tipo * variable;Por ejemplo: int* puntero;Se dice que la variable puntero es un puntero a enteros (apunta a un entero).AsignacinEl valor que puede adquirir un puntero es, por ejemplo, la direccin de una variable. El operador & devuelve la direccin de una variable: puntero = &variable;Desreferencia de un punteroSe puede alterar la variable a la que apunta un puntero. Para ello se emplea el operador de desreferencia, que es el asterisco: *puntero = 45; En este caso, se est introduciendo un 45 en la posicin de memoria a la que apunta puntero.

Para ms informacin y abundar en el tema: http://sopa.dis.ulpgc.es/fso/cpp/intro_c/