软件开发是一种智力活动,阅读不同经验的软件工程师写出来的代码,你会发现实现同样的功能,资深软件工程师写出来的代码会高大上很多。以下举例来说明一下:
先来看一个通讯协议相关的例子,数据帧定义如下:
帧长度 | 传感器类型 | 数据 |
---|---|---|
1字节 | 1字节 | n字节 |
传感器数据格式定义如下:
传感器 | 类型号 | 数据格式 |
---|---|---|
压力传感器 | 1 | 整型数据(4字节) |
流量传感器 | 2 | 整型数据(4字节) |
初级工程师的实现代码可能如下:
static int parse(const char *data,size_t n)
{
int len = data[0];
int type = data[2];
int value;
switch(type){
case 1:
value = *(int *)&data[3];
printf("press= %d\r\n",value);
case 2:
value = *(int *)&data[3];
printf("flow= %d\r\n",v