csmbbcy 发表于 2011-11-18 16:06:38

请教马老师 关于结构体变量的偏移地址 宏调用 以及 整形和指针类型的转换

这个是结构体:
typedef struct _FAT_DIR_INFO {
      .....
      UINT8          DIR_Attr;
      ....
      UINT16 DIR_FstClusHI;
} FAT_DIR_INFO;


这个是取结构体偏移:
#define STRUCT_OFFSET( s, m ) ( (UINT8)( & ( ((s *)0) -> m ) ) )

这个是调用到地方:
s = STRUCT_OFFSET( FAT_DIR_INFO, DIR_FstClusHI );

编译器用的是winavr    pn编译

这里是编译报错:
warning: cast from pointer to integer of different size

类型不匹配

但是我找不到问题怎么解决 希望马老师指点一下 谢谢!

csmbbcy 发表于 2011-11-18 16:37:13

我调试了下 指针转换应该先转成2字节整形 再转uint8
页: [1]
查看完整版本: 请教马老师 关于结构体变量的偏移地址 宏调用 以及 整形和指针类型的转换