[C con Clase] RE: Errores producidos en compilación. ESTRUCTURAS.

Ismael Camarero icamarero98 en hotmail.com
Vie Abr 4 18:16:11 CEST 2008



El error que arroja es debido a que no se puede acceder a la dirección de los campos de bits. El motivo es que la aritmética de punteros nos dice que los desplazamientos por la memoria se realizan mediante saltos, bloques,  de tamaño del tipo de dato (int, por ejemplo, de 4 bytes), pero no mediante fragmentos de ese tipo de bloque.

Saludos

Ismael


From: alfaslave en hotmail.com
To: cconclase en listas.conclase.net
Date: Fri, 4 Apr 2008 08:08:11 +0000
Subject: [C con Clase] Errores producidos en compilación. ESTRUCTURAS.









Hola amigos!. Ya estoy aquí de nuevo.
 
Sigo en el capítulo de las ESTRUCTURAS. Estoy realizando el segundo ejercicio planteado y me ha surgido una duda a raiz de unos errores que me debuelve el compilador al intentar compilar.
 
Os paso parte del programa para que lo veais más claro.
 
void main (void)
{

struct ESTRUCTURA { unsigned short int ANNO:7;    // 7 BITS PARA ALMACENAR VALORES DE 0 A 127.
                              unsigned short int MES:4;      // 4 BITS PARA ALMACENAR VALORES DE 1 A 12.
                              unsigned short int DIA:5;       // 5 BITS PARA ALMACENAR VALORES DE 1 A 31.
                            } FECHA;
 
 int  AJUSTE_ANNO;    // EL PRIMER A¥O CORRESPONDE A 1960.
                               // EL éLTIMO A¥O CORRESPONDE A 2087.

 FECHA.DIA = 1;        // INICIALIZACIàN DE VARIABLES.
 FECHA.MES = 1;
 FECHA.ANNO = 0;
 AJUSTE_ANNO = 1960;

 gotoxy (X,Y+5); printf ("Tama¤o de ESTRUCTURA: %d Bytes", sizeof (struct ESTRUCTURA));
 
 scanf ("%d", &FECHA.DIA);          
 scanf ("%d", &FECHA.MES);
 scanf ("%d", &FECHA.ANNO);
 
 gotoxy (10, 25); printf ("DIA.....: %d", FECHA.DIA);
 gotoxy (10, 26); printf ("MES.....: %d", FECHA.MES);
 gotoxy (10, 27); printf ("A¥O.....: %d", FECHA.ANNO);
 getch ();
 
}
 
Los errores son 3 y corresponden a las líneas donde están las instrucciones de "scanf". 
Es el mismo error para las 3 y es el siguiente: "Illegal to take address of bit field".
 
Tratándose de variables "unsigned short integer" deberían estar bien escritar las lineas "scanf" donde se pide que se entre el valor por teclado para DIA, MES y ANNO, no?.
 
Gracias de antemano.
 
NOTA: Si quereis os puedo pasar el programa integro. No lo he puesto aquí para que no resulte demasiado largo el e-mail.



Sigue de cerca las últimas tendencias y lo que más rompe MSN Vídeo 


Sigue de cerca las últimas tendencias y lo que más rompe MSN Vídeo 
Todo ruedas: información práctica y todo el glamour del mundo del motor. MSN Estilo y Tendencias

_________________________________________________________________
MSN Video. 
http://video.msn.com/?mkt=es-es
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20080404/fce061e8/attachment.html>


Más información sobre la lista de distribución Cconclase