一个结构指针的疑问

[复制链接]
2058|5
 楼主| 472666GAQ 发表于 2010-5-13 07:09 | 显示全部楼层 |阅读模式



unsigned char FAT32_Buffer[512];
struct FAT_Item               
{
unsigned char Item[4];
};


struct FAT32_FAT
{
struct FAT_Item Items[128];  
};

void ******(unsigned long Curr_cluster)
{
   struct FAT_Item  *pItem;
   struct FAT32_FAT *pFat;
   pFat=(struct FAT32_FAT *)(FAT32_Buffer);//这样写没问题
   pItem=&(pFat->Items[Curr_cluster%128]);//这样写没问题
   但是这样写:
   pItem=&((struct FAT32_FAT *)(FAT32_Buffer)->Items[Curr_cluster%128]);//这样写为啥就会出现错误呢
}
ayb_ice 发表于 2010-5-13 08:39 | 显示全部楼层
直接用个二维数组代替
ShakaLeo 发表于 2010-5-13 08:39 | 显示全部楼层
把有问题的那句改成
pItem=&(((struct FAT32_FAT *)(FAT32_Buffer))->Items[Curr_cluster%128]);
就好了,应该是优先级问题
maomao2126 发表于 2010-5-13 08:57 | 显示全部楼层
优先级的问题,如楼上用()修饰一下就OK了
 楼主| 472666GAQ 发表于 2010-5-13 10:53 | 显示全部楼层
谢谢大家了  :lol
znmcu 发表于 2010-5-13 12:38 | 显示全部楼层
不知你为何把 函数名 换成*******,这些代码源于znFAT,敬请注名出处。谢谢!
  1.         +-----------------------------------------+
  2.         |振南电子 原创程序模块 znFAT文件系统 5.13 |
  3.         +-----------------------------------------+

  4.   此源码版权属 振南 全权享有,如欲引用,敬请署名并告知
  5.         严禁随意用于商业目的,违者必究,后果自负
您需要登录后才可以回帖 登录 | 注册

本版积分规则

102

主题

285

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部