TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: j_fernandez en 21 de Marzo de 2006, 05:41:00

Título: Pregunta sobre crear un nuvo tipo de variable
Publicado por: j_fernandez en 21 de Marzo de 2006, 05:41:00
Hola, estoy trabajando en un proyecto y me surgen dos dudas, la primera es que al definir un struct al final has de poner el nombre de la variable y si quieres utilizar el formato creado en otro lado no puedes, me explico con un ejemplo.

struct fecha {
 int dia;
 int mes;
 int año;
} fecha actual;

fecha actual me queda definida como una estructura de tipo fecha, pero en el caso de que en otra estuctura necesite el mismo tipo de variable no me deja, ej.

struct medida{
 int canal;
 int magnitud;
 fecha fecha_medida;
 .....
}medida 1;

Como se podría hacer esto? alguien podría decirmelo porfavor?

Y la segunda duda, es en el caso de dentro de la estructura coloque :

struct fecha {
 int dia : 2;
 int mes : 2;
 int año :2;
} fecha actual;

Quiere decir que cada variable me ocupara sólo 2 bits???

Gracias y un saludo

Título: RE: Pregunta sobre crear un nuvo tipo de variable
Publicado por: juanelete en 21 de Marzo de 2006, 12:36:00
Hola

Puedes hacerlo de 2 formas:

asi:

struct FECHA
{
   int dia;
   int mes;
   int ano;
} fecha_actual;


struct medida
{
   int canal;
   int magnitud;
   struct FECHA fecha_medida;
}medida1;

o asi:

typedef struct
{
   int dia;
   int mes;
   int ano;
} FECHA;


struct medida
{
   int canal;
   int magnitud;
   FECHA fecha_medida;
}medida1;


En cuanto a la otra pregunta, la respuesta es si. Sirve para repartir los 8 bits de un Byte entre varias variables de bits. Aunque lo correcto es que la suma total de bits sea 8.

struct fecha
{
int dia : 2;
int mes : 2;
int año :2;
int no_usado :2;
} fecha_actual;


Saludos Giño
Título: RE: Pregunta sobre crear un nuvo tipo de variable
Publicado por: j_fernandez en 22 de Marzo de 2006, 01:25:00
 Muchas gracias Juanelete me as ayudado muchisimo!!!

Hacia lo mismo que tu me decias pero sin poner la palabra struct cuando insertaba la primera en la segunda.

Gracias de nuevo y un saludo. Rebotado