|
Anatomía de los programas en C
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
main()
{
printf("Este es el primer programa 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("Este es el primer programa en lenguaje C \n");
Encabezamiento
Las
líneas anteriores a la función main() se denominan Encabezamiento
(Header) y son informaciones que se le suministranal 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 ( ) 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.
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
laescritura de largas definiciones en cada programa.COMENTARIOS 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 /* comentario corto */ /* este otro es más
largo que el pasado */
Todo caracter dentro de los símbolos delimitadores es tomado como
comentario incluyendo a
" * "
ó
" ( " |