新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > c語言結(jié)構(gòu)體定義結(jié)構(gòu)體

c語言結(jié)構(gòu)體定義結(jié)構(gòu)體

作者: 時(shí)間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
代碼1 定義結(jié)構(gòu)體_m_usmart_dev

struct _m_usmart_dev
{
struct _m_usmart_nametab *funs;//函數(shù)名指針

本文引用地址:http://butianyuan.cn/article/201611/322299.htm

void (*init)(u8);//初始化
u8 (*cmd_rec)(u8*str);//識(shí)別函數(shù)名及參數(shù)
void (*exe)(void); //執(zhí)行
void (*scan)(void); //掃描
u8 fnum; //函數(shù)數(shù)量
u8 pnum; //參數(shù)數(shù)量
u8 id;//函數(shù)id
u8 sptype;//參數(shù)顯示類型(非字符串參數(shù)):0,10進(jìn)制;1,16進(jìn)制;
u16 parmtype;//參數(shù)的類型
u8 plentbl[MAX_PARM]; //每個(gè)參數(shù)的長(zhǎng)度暫存表
u8 parm[PARM_LEN]; //函數(shù)的參數(shù)
};

代碼2 定義_m_usmart_dev類型的結(jié)構(gòu)體 并對(duì)其賦初始值

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),//函數(shù)數(shù)量
0, //參數(shù)數(shù)量
0, //函數(shù)ID
1,//參數(shù)顯示類型,0,10進(jìn)制;1,16進(jìn)制
0,//參數(shù)類型.bitx:,0,數(shù)字;1,字符串
0, //每個(gè)參數(shù)的長(zhǎng)度暫存表,需要MAX_PARM個(gè)0初始化
0,//函數(shù)的參數(shù),需要PARM_LEN個(gè)0初始化
};

上邊代碼可理解為

struct _m_usmart_dev
{
struct _m_usmart_nametab *funs;//函數(shù)名指針

void (*init)(u8);//初始化
u8 (*cmd_rec)(u8*str);//識(shí)別函數(shù)名及參數(shù)
void (*exe)(void); //執(zhí)行
void (*scan)(void); //掃描
u8 fnum; //函數(shù)數(shù)量
u8 pnum; //參數(shù)數(shù)量
u8 id;//函數(shù)id
u8 sptype;//參數(shù)顯示類型(非字符串參數(shù)):0,10進(jìn)制;1,16進(jìn)制;
u16 parmtype;//參數(shù)的類型
u8 plentbl[MAX_PARM]; //每個(gè)參數(shù)的長(zhǎng)度暫存表
u8 parm[PARM_LEN]; //函數(shù)的參數(shù)
}usmart_dev=
{
usmart_nametab,
usmart_init,
usmart_cmd_rec,
usmart_exe,
usmart_scan,
sizeof(usmart_nametab)/sizeof(struct _m_usmart_nametab),//函數(shù)數(shù)量
0, //參數(shù)數(shù)量
0, //函數(shù)ID
1,//參數(shù)顯示類型,0,10進(jìn)制;1,16進(jìn)制
0,//參數(shù)類型.bitx:,0,數(shù)字;1,字符串
0, //每個(gè)參數(shù)的長(zhǎng)度暫存表,需要MAX_PARM個(gè)0初始化
0,//函數(shù)的參數(shù),需要PARM_LEN個(gè)0初始化
};



關(guān)鍵詞: c語言結(jié)構(gòu)

評(píng)論


技術(shù)專區(qū)

關(guān)閉