结构体对齐有关问题

结构体对齐问题
使用#pragma pack(n)来进行结构体对齐,发现在PC机上可以,arm上却无效。
如下结构体:
#pragma pack(2)
typedef struct tagtest2{
        int  a;
        char b;
        char c;
}test2;
#pragma pack()
在uclinux 2.6系统下,sizeof出来还是8,pc机上sizeof是6
编译的工具分别为:
arm:arm-linux-gcc (GCC) 3.4.4
pc:  gcc (GCC) 4.6.2 20111027 (Red Hat 4.6.2-1)

系统分别为:
arm-os:uclinux 2.6.14
pc-os:linux

这是为何呢,难道#pragma pack(n)对arm的环境无效吗?
可有高人帮忙解答一下。。

------解决方案--------------------

ARM在4字节对齐方式上和X86编译器有所不同,
导致在ARM和X86设备通讯时对字节偏移的理解不一致。
在结构定义,包括类的成员定义时,尽量能凑成4字节
一个变量,不够补充空白字节