This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

wrong evaluation of the compiler??... Very rare error

Dear all,

I have this ultra simple strcture

typedef struct
{ uint8_t Hora; uint16_t Data1;
} EEpromPaqueteDatosS;

When I do sizeof(EEpromPaqueteDatosS) it returns 4!!! But if I do the sizeof of the same structure with only one variable, in other words, with uint8_t variable it returns 1 and with uint16_t it returns 2.. but if the structure have the two variables it returns 4!!

Also if I copy the structure to a uint8_t vector I can found a strange byte in the middle.. like this:

EEpromPaqueteDatosS EEpromPaqueteDatos;
uint8 data[4];

EEpromPaqueteDatos.Hora = 0x10;
EEpromPaqueteDatos.Data1= 0x1020;

When I copy the structure to data, data is like 0x10, 0x??, 0x20, 0x10.. why this extra byte!!!!

Can anybody help me with this???

Thanks

Parents
  • if so Keil (recent version) breaks the "language definition"

    I'm with Per on that one: it'll take actual evidence to convince me of that. In a new thread, preferrably.

    I do not know the "language definition"

    And you say that (here and elsewhere) as if you're proud of it. I think you rather should be ashamed of it.

Reply
  • if so Keil (recent version) breaks the "language definition"

    I'm with Per on that one: it'll take actual evidence to convince me of that. In a new thread, preferrably.

    I do not know the "language definition"

    And you say that (here and elsewhere) as if you're proud of it. I think you rather should be ashamed of it.

Children
No data