当前位置: 代码迷 >> WinCE >> Wince下一个变量的地址低8位必须为0,即类似_align(256)关健字解决方法
  详细解决方案

Wince下一个变量的地址低8位必须为0,即类似_align(256)关健字解决方法

热度:40   发布时间:2016-04-28 13:01:05.0
Wince下一个变量的地址低8位必须为0,即类似__align(256)关健字
最近正在研究s3c2440的USB主机接口,可它采用的是OHCI规范,在OHCI规范中要求寄存器HcHCCA(用来设置HCCA数据区的地址)变量地址的低8位必须为0,如:
  __align(256)struct ohci_hcca ghcca;

但在Wince中好像不支持__align关健字,而#pragma pack() 只能是1、2、4、...、32, 网上有人说全局变量可以支持大于32字节对齐的,我试过了#pragma pack(256),达不到效果,测试如下:
#pragma pack(256)
typedef struct test
{
  BYTE bTest;
}RcTest;
#pragma pack()

#pragma pack(256)
RcTest rTest;
#pragma pack()

//sizeof(RcTest) 等于 1
//&rTest=0x0041a314

不知Wince下有没有相应的关健字,有哪位大侠知道是什么关健字啊,请赐教!



------解决方案--------------------
结贴吧。
------解决方案--------------------
探讨

自己顶一个,刚才查看MSDN时,终于发现了一个跟__align()替换的关健字,测试结果也符合要求。

__declspec( align(256) )
typedef struct test
{
BYTE bTest;
}RcTest;
#pragma pack()

__declspec( align(256) )
RcTest rTest;
#pragma pac……
  相关解决方案