1. INTRODUCCION
El lenguaje de programación C está caracterizado por ser de uso
general, con una sintaxis sumamente compacta y de alta
portabilidad.
Es común leer que se lo caracteriza como un lenguaje de
"bajo nivel". No debe confundirse el término
"bajo" con "poco", ya que el significado del
mismo es en realidad "profundo", en el sentido que C
maneja los elementos básicos presentes en todas las
computadoras: caracteres, números y direcciones .
Esta particularidad, junto con el hecho de no poseer operaciones
de entrada-salida, manejo de arreglo de caracteres, de
asignación de memoria, etc , puede al principio parecer un grave
defecto; sin embargo el hecho de que estas operaciones se
realicen por medio de llamadas a Funciones contenidas en
Librerías externas al lenguaje en sí, es el que confiere al
mismo su alto grado de portabilidad, independizandolo del
"Hardware" sobre el cual corren los programas, como se
irá viendo a lo largo de los siguientes capítulos.
La descripción del lenguaje se realiza siguiendo las normas del
ANSI C, por lo tanto, todo lo expresado será utilizable con
cualquier compilador que se adopte; sin embargo en algunos casos
particulares se utilizaron funciones Compilador ó Sistema
Operativo-dependientes, explicitándose en estos casos la
singularidad de las mismas.
2. ANATOMIA DE UN PROGRAMA C
Siguiendo la tradición, la mejor forma de aprender a programar
en cualquier lenguaje es editar, compilar, corregir y ejecutar
pequeños programas descriptivos. Analicemos por lo tanto el
primer ejemplo :
EJEMPLO 1
#include <stdio.h> main() { printf("Bienvenido a la Programacion en lenguaje C \n"); return 0; }
FUNCION main()
Dejemos de lado por el momento el análisis de la primer linea
del programa, y pasemos a la segunda.
La función main() indica donde empieza el programa, cuyo cuerpo
principal es un conjunto de sentencias delimitadas por dos
llaves, una inmediatamente después de la declaración main()
" { ", y otra que finaliza el listado " } ".
Todos los programas C arrancan del mismo punto: la primer
sentencia dentro de dicha función, en este caso printf
("......").
En el EJEMPLO 1 el programa principal está compuesto por sólo
dos sentencias: la primera es un llamado a una función
denominada printf(), y la segunda, return, que finaliza el
programa retornando al Sistema Operativo.
Recuérdese que el lenguaje C no tiene operadores de
entrada-salida por lo que para escribir en video es necesario
llamar a una función externa. En este caso se invoca a la
función printf(argumento) existente en la Librería y a la cual
se le envía como argumento aquellos caracteres que se desean
escribir en la pantalla. Los mismos deben estar delimitados por
comillas. La secuencia \n que aparece al final del mensaje es la
notación que emplea C para el caracter "nueva linea"
que hace avanzar al cursor a la posición extrema izquierda de la
línea siguiente. Más adelante analizaremos otras secuencias de
escape habituales.
La segunda sentencia (return 0) termina el programa y devuelve un
valor al Sistema operativo, por lo general cero si la ejecución
fué correcta y valores distintos de cero para indicar diversos
errores que pudieron ocurrir. Si bien no es obligatorio terminar
el programa con un return, es conveniente indicarle a quien lo
haya invocado, sea el Sistema Operativo o algún otro programa,
si la finalización ha sido exitosa, o no. De cualquier manera en
este caso, si sacamos esa sentencia el programa correrá
exactamente igual, pero al ser compilado, el compilador nos
advertirá de la falta de retorno.
Cada sentencia de programa queda finalizada por el terminador
"; ", el que indica al compilador el fin de la misma.
Esto es necesario ya que, sentencias complejas pueden llegar a
tener más de un renglón, y habrá que avisarle al compilador
donde terminan.
Es perfectamente lícito escribir cualquier sentencia abarcando
los renglones que la misma necesite, por ejemplo podría ser:
printf("Bienvenido a la Programacion" "en lenguaje C \n");
3. ENCABEZAMIENTO
Las líneas anteriores a la función main() se denominan
ENCABEZAMIENTO (HEADER) y son informaciones que se le suministran
al Compilador.
La primera línea del programa está compuesta por una directiva:
" #include " que implica la orden de leer un archivo de
texto especificado en el nombre que sigue a la misma (
<stdio.h> ) y reemplazar esta línea por el contenido de
dicho archivo.
En este archivo están incluidas declaraciones de las funciones
luego llamadas por el programa ( por ejemplo printf() )
necesarias para que el compilador las procese. Por ahora no nos
preocupemos por el contenido del archivo ya que más adelante, en
el capítulo de funciones, analizaremos exhaustivamente dichas
declaraciones.
Hay dos formas distintas de invocar al archivo, a saber, si el
archivo invocado está delimitado por comillas (por ejemplo
"stdio.h") el compilador lo buscará en el directorio
activo en el momento de compilar y si en cambio se lo delimita
con los signos <.......> lo buscará en algun otro
directorio, cuyo nombre habitualmente se le suministra en el
momento de la instalación del compilador en el disco ( por
ejemplo C:\TC\INCLUDE). Por lo general estos archivos son
guardados en un directorio llamado INCLUDE y el nombre de los
mismos está terminado con la extensión .h.
La razón de la existencia de estos archivos es la de evitar la
repetición de la escritura de largas definiciones en cada
programa.
Nótese que la directiva "#include" no es una sentencia
de programa sino una orden de que se copie literalmente un
archivo de texto en el lugar en que ella está ubicada ,por lo
que no es necesario terminarla con "; ".
4. COMENTARIOS
La inclusión de comentarios en un programa es una saludable
práctica, como lo reconocerá cualquiera que haya tratado de
leer un listado hecho por otro programador ó por sí mismo,
varios meses atrás. Para el compilador, los comentarios son
inexistentes, por lo que no generan lineas de código,
permitiendo abundar en ellos tanto como se desee.
En el lenguaje C se toma como comentario todo caracter interno a
los simbolos: /* */ . Los comentarios pueden ocupar uno o más
renglones, por ejemplo:
COMENTARIOS
/* este es un comentario corto */ /* este otro es mucho más largo que el anterior */
Todo caracter dentro de los símbolos delimitadores es tomado
como comentario incluyendo a " * " ó " ( " ,
etc.
PROXIMO CAPITULO DEL CURSO |