Daniel O'Connor wrote:
On Mon, 4 May 2009, Bob Paddock wrote:
uint16_t voltage[24]; // adc counts of 24 channels
in an array } ED; // total data = 58 bytes
Because of issues of structure packing it is better to define
structure items from
the largest to the smallest, ie. uint16_t should be first. This is
more important
on 32bit processors and up than on the 8bit AVRs.
You could just mark the struct as packed, eg..
typedef struct eventdata {
...
} __attribute__ ((packed)) ED;
Or use the -wpadded warning flag, which will let you know if any
implicit padding has been added (I prefer to explicitly add padding if
it is required).
Of course, you don't get padding on an 8-bit AVR (except for bit
fields), but it's good to write portable code when practical.
_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list