Translate

miércoles, 17 de diciembre de 2008

Sintaxis del Programa Parte III

Punteros

El uso de punteros en lenguaje C es muy común, en general los punteros sirven para mantener la dirección de una variable, los punteros son declarados de igual manera que las variables de programa solo que a estos les precede el símbolo asterisco (*), de tal manera que si queremos declarar un puntero de un entero sin signo tenemos:

  unsigned int *point; // este puntero sujetara la dirección de memoria de una variable entera sin signo.

Para asignar una dirección o un valor al puntero es necesario hacer uso del símbolo andperson (&) precediendo a la variable, por ejemplo:

 point = &k ; // El puntero point ahora posee la dirección de la variable k

Para asignar valores a k podemos usar el puntero:  *point = 200; con esta declaración la variable k tendrá como valor 10, lo que hubiese sido similar a declarar k = 200; también podemos pasar este valor a otras variables por ejemplo: i = *pointi ahora vale 200. Los arreglos también soportan el uso de punteros.

Estructuras

Las estructuras nos permiten llevar un control mas limpio en algunas variables, como por ejemplo las fechas, al  declarar una estructura el tamaño de bytes usados es equivalente al tamaño total de todos sus elementos y puede se obtenido dicho tamaño con la palabra reservda sizeof.

Para declarar una estructura de programa basta con usar la palabra reservada struct  seguida del nombre de la estructura, un ejemplo seria:

 struct time

{

   unsigned char year;

   unsigned char month;

   unsigned char day;

   undisgned char dweek;

   unsigned char hour;

   unsigned char mins;

}

 Ó también se puede nombrar la estructura al final por ejemplo:

struct 

{

   unsigned int year;

   unsigned char month;

   unsigned char day;

   undisgned char dweek;

   unsigned char hour;

   unsigned char mins;

time;

De igual forma que las variables podemos asignar valores a las variables individuales de la estructura, también podemos declarar las variables que hagan uso de la estructura por ejemplo:

  time fecha; // declaramos fecha como variable que contiene los elementos de la estructura

   ....

 fecha.year=2002;  // Asignamos valores a cada elemento

 fecha.mins=20;

Uniones

Las uniones son usadas para "traslapar" 2 variables y el espacio ocupado por las uniones esta dado por el tamaño de la variable mayor dentro de la unión, de esta manera si ser tiene un long y un entero dentro de la unión, el tamaño máximo es LONG. C18 soporta la unión de estructuras anónimas, es decir, una estructura sin nombre dentro de una unión.

Un ejemplo de una unión es el siguiente:

  union coord

   {

    unsigned int x;

    unsigned char y;

  }

De igual forma que las estructuras la unión puede ser nombrada al final:

  union 

  {

    unsigned int x;

    unsigned char y;

  }coord;

Para asignar una variable hacemos: coord k; . Un ejemplo que simplifica el uso de uniones es asignar un valor al elemento mayor de la unión por ejemplo:

   k.x = 0xAAFF;  // x valdra 0xAAFF, mientras que y por su tamaño sera 0xFF

 

No hay comentarios:

Publicar un comentario