C语言数组按协议存储与按协议解析数据的实现
C语言数组按协议存储与按协议解析数据的实现 C语言数组按协议存储与按协议解析数据的实现是指在C语言中按照特定的协议要求对数组进行存储和解析,今天我们就来分享一下这种实现的方法。 我们需要了解协议的需求。协议要求我们将数据存储在一个600字节的空间中,以20个字节为单位,分别存储序列号、属性和名称。为了满足这个要求,我们可以设计一个结构体来表述这些数据: struct Data_Info{ char serial_num ; //序列号 char property ; //属性 char sample_name[18]; //分类名称 }; 在设计好结构体之后,我们可以写一个函数来随机初始化一块600个字节的内存空间,并将数据按照协议的要求进行初始化。这个函数可以这样实现: void Create_Simple_Data(char *_data){ int i ; int count_num = 1 ; for(i = 0 ; i < 600 ; i++) { if(i % 20 == 0) { _data[i] = count_num ; _data[i+1] = rand()%2 ; memcpy(_data+i+2,name[rand()%7],18); count_num++ ; } } } 这个函数的作用是将600个字节的内存空间初始化成按照协议的要求的格式。接下来,我们需要写一个函数来输出这些数据,并按照协议进行解析。这个函数可以这样实现: void Put_Simple_Data(char *_data){ int offset_start = 0 , count = 0 , end_position = 0 ; int end_position_save = 0 ; int count_number = 0 ; count_number = 0 ; for(offset_start = 0 , count = 0 ; offset_start < 600 ; offset_start++ ,count++) { if(count == 20) { end_position = offset_start ; sample_data_info[count_number].serial_num = _data[end_position-20] ; sample_data_info[count_number].property = _data[end_position-19] ; memset(sample_data_info[count_number].sample_name,0,18); memcpy(sample_data_info[count_number].sample_name,(_data+2)+(20*count_number),18); printf("编号:%d 属性:%d 名称:%s\n",sample_data_info[count_number].serial_num,sample_data_info[count_number].property,sample_data_info[count_number].sample_name); count_number++ ; count = 0 ; } } } 这个函数的作用是将按照协议的要求初始化的数据输出并解析。在主函数中,我们可以调用这两个函数来实现功能: int main (void) { char *_data = NULL ; _data = malloc(600); Create_Simple_Data(_data); Put_Simple_Data(_data); free(_data); _data = NULL ; return 0; } 这个程序的运行结果将会按照协议的要求将数据存储和解析输出出来。这是一种非常简单且粗暴的方法,适合在嵌入式开发或者相关协议开发中使用。
- 粉丝: 4
- 资源: 874
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- androidx.multidex.MultiDexApplication.apk.1
- 丑子金装美化32(1).zip
- 基于Visual Basic .Net及Python技术的学校需求解决方案设计源码
- 基于Java语言的Web开发学习Demo设计源码
- 基于Java的医院排队叫号系统界面原型设计源码
- 基于Java语言的Himalaya仿喜马拉雅设计源码
- 基于PHP+HTML+CSS+JavaScript的智能电车管家设计源码
- 基于Emscripten编译的纯H5直播流播放器jessibuca设计源码
- 基于react-native的Android隐私合规配置与代码集成设计源码
- 基于JavaFX技术的全功能色彩管理器设计源码