Gcc 节中的AVR变量顺序

Gcc 节中的AVR变量顺序,gcc,avr,Gcc,Avr,考虑以下代码: #define VER __attribute__((section(".version"))) const uint8_t VER major=0x01; const uint8_t VER minor=0x03; const uint8_t VER patch=0x0a; const uint8_t VER build=0x00; 当使用avr gcc 4.3编译时,所有变量都按照输出十六进制文件中的声明顺序排列 使用avr gcc 4.7编译时,所有变量在输出十六进制文件

考虑以下代码:

#define VER __attribute__((section(".version")))
const uint8_t VER major=0x01;
const uint8_t VER minor=0x03;
const uint8_t VER patch=0x0a;
const uint8_t VER build=0x00;
当使用avr gcc 4.3编译时,所有变量都按照输出十六进制文件中的声明顺序排列

使用avr gcc 4.7编译时,所有变量在输出十六进制文件中的顺序相反


是否有任何编译器/链接器选项来统一此行为?

为什么不能将其声明为单个数组?如果这是唯一的方法,我必须这样做。但我有类似的一堆不同类型的变量,值1k的eeprom内存。所以我想走另一条路。如果存在的话。