在arch/arm/kernel/Setup.c中有这样一段 static union { char c[4]; unsigned long l; } endian_test __initdata = { { 'l', '?', '?', 'b' } };#define ENDIANNESS ((char)endian_test.l) 其中__initdata指定了数据存放的section include/linux/Init.h #define __initdata __attribute__ ((__section__ (".init.data")))