c語言結構體定義結構體
struct _m_usmart_dev
{
struct _m_usmart_nametab *funs;//函數名指針
void (*init)(u8);//初始化
u8 (*cmd_rec)(u8*str);//識別函數名及參數
void (*exe)(void); //執(zhí)行
void (*scan)(void); //掃描
u8 fnum; //函數數量
u8 pnum; //參數數量
u8 id;//函數id
u8 sptype;//參數顯示類型(非字符串參數):0,10進制;1,16進制;
u16 parmtype;//參數的類型
u8 plentbl[MAX_PARM]; //每個參數的長度暫存表
u8 parm[PARM_LEN]; //函數的參數
};
代碼2 定義_m_usmart_dev類型的結構體 并對其賦初始值
struct _m_usmart_dev usmart_dev=
{
usmart_nametab,
usmart_init,
usmart_cmd_rec,
usmart_exe,
usmart_scan,
sizeof(usmart_nametab)/sizeof(struct _m_usmart_nametab),//函數數量
0, //參數數量
0, //函數ID
1,//參數顯示類型,0,10進制;1,16進制
0,//參數類型.bitx:,0,數字;1,字符串
0, //每個參數的長度暫存表,需要MAX_PARM個0初始化
0,//函數的參數,需要PARM_LEN個0初始化
};
上邊代碼可理解為
struct _m_usmart_dev
{
struct _m_usmart_nametab *funs;//函數名指針
void (*init)(u8);//初始化
u8 (*cmd_rec)(u8*str);//識別函數名及參數
void (*exe)(void); //執(zhí)行
void (*scan)(void); //掃描
u8 fnum; //函數數量
u8 pnum; //參數數量
u8 id;//函數id
u8 sptype;//參數顯示類型(非字符串參數):0,10進制;1,16進制;
u16 parmtype;//參數的類型
u8 plentbl[MAX_PARM]; //每個參數的長度暫存表
u8 parm[PARM_LEN]; //函數的參數
}usmart_dev=
{
usmart_nametab,
usmart_init,
usmart_cmd_rec,
usmart_exe,
usmart_scan,
sizeof(usmart_nametab)/sizeof(struct _m_usmart_nametab),//函數數量
0, //參數數量
0, //函數ID
1,//參數顯示類型,0,10進制;1,16進制
0,//參數類型.bitx:,0,數字;1,字符串
0, //每個參數的長度暫存表,需要MAX_PARM個0初始化
0,//函數的參數,需要PARM_LEN個0初始化
};
評論