12.9.1 Packed Example

__pack_upper_byte char message[] = "Hello World!\n";

will allocate the message string into Flash memory in such a way that the upper byte of memory contains valid data.

There are no restrictions to the types of __pack_upper_byte data. The compiler will 'pack' structures as if __attribute__((packed)) had also been specified. This further eliminates wasted space due to padding.

Like other extended type qualifiers, the __pack_upper_byte type qualifier enforces a unique addressing space on the compiler; therefore, it is important to maintain this qualifier when passing values as parameters. Do not be tempted to cast away the __pack_upper_byte qualifier – it won't work.