我從編譯器接收指示一個錯誤消息(它是一個嵌入式C編譯器):Typedeffed結構未定義雖然它被定義
錯誤[Pe020]:標識符「MPTR」在myflash.h是未定義的(見下面的代碼)
我正在使用稱爲MPTR的typedeffed結構。的代碼是:
//datahandler.h
#ifndef DATAHANDLER_H
#define DATAHANDLER_H
#include "enet_uip_ap01.h"
typedef struct _MPTR {
unsigned int flash_start;
unsigned int flash_pagestart;
unsigned short rom_start;
unsigned short rom_nextrecord;
unsigned short rom_lastrecord;
} MPTR;
...etc
我要轉發使用在另一個標題中的MPTR參數聲明一個函數:
//myflash.h
#ifndef MYFLASH_H
#define MYFLASH_H
#include "enet_uip_ap01.h"
unsigned char FLASH_StorePage(MPTR *mptr, unsigned short addr, unsigned int flag);
兩個頭:「datahandler.h」和「myflash.h」被包括在「enet_uip_ap01.h」。但是,上面的函數聲明會引發編譯錯誤。
很可能這是一個簡單的基本C語言問題,這是一個恥辱,我不知道,但我不知道如何解決它。如果有人能指出我的錯誤,我會很高興。謝謝!
編輯:放置附加代碼在這裏:
//enet_uip_ap01.h
#ifndef ENET_UIP_AP01_H
#define ENET_UIP_AP01_H
//....other not relevant includes here...
#include "datahandler.h"
#include "myflash.h"
#endif
你可以發佈你的'enet_uip_ap01.h'嗎?第二個頭文件中的struct _MPTR *是否工作? – Yuji
目前粘貼的代碼不應該有任何問題,請發帖'enet_uip_ap01.h' – Avinash
嘗試在這裏包括datahandler.h – Kris