c 结构 易语言 自定义数据,【C语言】用结构体和结构体数组构造协议数据内容。...

本文介绍了一种使用C语言结构体进行配置文件更新的方式。通过定义特定的数据结构,包括`esl_attr_data`、`port_data`及`cfg_f_data_t`等,实现了配置文件中端口数量、端口信息及其属性数据的初始化与存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面试需要实现的一条协议。

26f4126ef9d48f1b77db2a91886f36d4.gif

结构体.jpg (70 KB, 下载次数: 3)

2014-6-27 15:41 上传

用结构体实现上述信息的描述和初始化://----------------- struct of config file update --------------

struct esl_attr_data{

unsigned short id;

unsigned char type;

unsigned char gs;

};

struct port_data{

unsigned char esl_num;

struct esl_attr_data **esl_attr;

};

typedef struct cfg_f_data{

unsigned char port_num;

struct port_data **port;

}cfg_f_data_t;

#define __PORT_NUM__ 2

#define __PORT1_ESL_NUM__ 34

#define __PORT2_ESL_NUM__ 56

unsigned char esl_num_arry[__PORT_NUM__] = {65,31};

unsigned char *port1_attr[2] = {port1_esl_id,port1_esl_type};

unsigned char *port2_attr[2] = {port2_esl_id,port2_esl_type};

unsigned char port1_esl_id[__PORT1_ESL_NUM__] = {};

unsigned char port2_esl_id[__PORT2_ESL_NUM__] = {};

unsigned char port1_esl_type[__PORT1_ESL_NUM__] = {};

unsigned char port2_esl_type[__PORT1_ESL_NUM__] = {};

int i,j;

cfg_f_data_t *CfgFData;

struct port_data *PortData;

struct esl_attr_data *EslAttrData;

CfgFData = (cfg_f_data_t *)malloc(sizeof(cfg_f_data_t));

CfgFData->port_num = 2;

CfgFData->port = (struct port_data **)malloc(sizeof(struct port_data *) * CfgFData->port_num);

for(i = 0;i < CfgFData->port_num;i ++){

PortData = (struct port_data *)malloc(sizeof(struct port_data));

PortData->esl_num = PortData;

PortData->esl_attr = (struct esl_attr_data **)malloc(sizeof(struct esl_attr_data *) * PortData->esl_num);

for(j = 0;j < PortData->esl_num;j ++){

EslAttrData = (struct esl_attr_data *)malloc(sizeof(struct esl_attr_data));

EslAttrData->gs = 0x30;

EslAttrData->id = port1_attr[1][j];

EslAttrData->type = port1_attr[2][j];

PortData->esl_attr[j] = EslAttrData;

}

CfgFData->port= PortData;

}

//-----------------------------------------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值