11.22.2007

becuase it's C

typedef name "Addr" used in  expression context
這個error..

Addr 是typedef 的structure type。

error 的位置是...
static Addr LBAtoCHS(FlashInfo *pFlashInfo, Addr lba)
{
if(lba.type == CHS)
return lba;

Addr chs;
DWORD tmp = pFlashInfo->dwNumBlocks * pFlashInfo->wSectorsPerBlock;
...

結果...
錯誤的原因是..
這是 C,不是C++,所以所有變數都要先宣告在第一個expression 之前..

1 則留言:

Jeffer 提到...

static Addr LBAtoCHS(FlashInfo *pFlashInfo, Addr lba)
{
if(lba.type == CHS)
return lba;
{
Addr chs;
...
}

用 { 就可以在隨後加新local vars

一般我在 C 都是讓變數生命週期愈短愈好.