Lenguaje C

Un programa C est� formado por un conjunto de funciones que al menos contiene la funci�n main. Una funci�n se declara con el nombre de la funci�n precedido del tipo de valor que retorna y una lista de argumentos encerrados entre par�ntesis. El cuerpo de la funci�n est� formado por un conjunto de declaraciones y de sentencias comprendidas entre llaves. Veamos un ejemplo de utilizaci�n de funciones:

#include <stdio.h>

#define VALOR 5
#define FACT 120

int fact_i ( int v )
{
  int r = 1, i = 0;
  while ( i <= v )
  {
    r = r * i;
	i = i + 1;
  }
  return r;
}

int fact_r ( int v )
{
  if ( v == 0 ) return 1;
  else return v * fact_r(v-1);
}

main() {
  int r, valor = VALOR;
  if ( (r = fact_i(valor)) != fact_r(valor) ) printf("Codificaci�n err�nea!!.\n");
  else if ( r == FACT ) printf("Codificaci�n correcta.\n");
  else printf("Algo falla!!.\n");
}

Se definen dos funciones, fact_i y fact_r, adem�s de la funci�n main. Ambas toman como par�metro un valor entero y devuelven otro entero. La primera calcula el factorial de un n�mero de forma iterativa, mientras que la segunda hace lo mismo de forma recursiva.

Todas las l�neas que comienzan con el s�mbolo # indican una directiva del precompilador. Antes de realizar la compilaci�n en C se llama a un precompilador cuya misi�n es procesar el texto y realizar ciertas sustituciones textuales. Hemos visto que la directiva #include incluye el texto contenido en un fichero en el fuente que estamos compilando. De forma parecida, #define nombre texto sustituye todas las apariciones de nombre por texto. As�, en el fuente, la palabra VALOR se sustituye por el n�mero 5.

El valor que debe devolver una funci�n se indica con la palabra return. La evaluaci�n de la expresi�n debe dar una valor del mismo tipo de dato que el que se ha definido como resultado. La declaraci�n de una variable puede incluir una inicializaci�n en la misma declaraci�n.

Se debe tener muy en cuenta que en C todos los argumentos son pasados 'por valor'. No existe el concepto de paso de par�metros 'por variable' o 'por referencia'. Veamos un ejemplo:

int incr ( int v ) { return v + 1; }

main() {
  int a, b;
  b = 3;
  a = incr(b);
  /* a = 4 mientras que b = 3. No ha cambiado despu�s de la llamada. */
}

En el ejemplo anterior el valor del par�metro de la funci�n incr, aunque se modifique dentro de la funci�n, no cambia el valor de la variable b de la funci�n main. Todo el texto comprendido entre los caracteres /* y */ son comentarios al programa y son ignorados por el compilador. En un fuente C los comentarios no se pueden anidar.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR