這個error..typedef name "Addr" used in expression context
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 則留言:
static Addr LBAtoCHS(FlashInfo *pFlashInfo, Addr lba)
{
if(lba.type == CHS)
return lba;
{
Addr chs;
...
}
用 { 就可以在隨後加新local vars
一般我在 C 都是讓變數生命週期愈短愈好.
張貼留言