高手们,帮小弟我看看这段代码什么意思

高手们,帮我看看这段代码什么意思?
typedef   unsigned   char u8;
typedef   unsigned   short u16;
typedef   unsigned   int u32;

#define   MC_PCC_FILL_STRUCT3   u8:0;   u8:8;   u8:8;   u8:8;   u8:0;
typedef   struct   __alg   {   char   c;   MC_PCC_FILL_STRUCT3   void   *   p;   }   __alg_t;
#define   MC_PPC_DISTANCE_OF(S,F)                 (unsigned)   (&(((S   *)   0)-> F))

#define   ALIGNMENT                               (MC_PPC_DISTANCE_OF(__alg_t,   p)   -   1)
#define   ALIGN(P)                                 (   (u32)   ((char   *)(P)   +   ALIGNMENT)   &   ~ALIGNMENT)

#define   STACK0_SIZE   1000
#define   INTERRUPT_STACK_SIZE   5000

u8   InterruptStack[ALIGN(   INTERRUPT_STACK_SIZE   )];
u8   stack_task0[ALIGN   (STACK0_SIZE)   ];

数组的定义里面为什么要加ALIGN,有什么作用?

------解决方案--------------------
不可以,你仔细揣摩一下ALIGN的功能吧,和直接赋值还是有区别的!
------解决方案--------------------
arm核分为有mmu和无mmu的,对于无mmu的不指定开始地址程序就飞了。。。。例如arm7TDMI