当前位置: 首页 > news >正文

手机网站建设网百度新闻首页

手机网站建设网,百度新闻首页,企业网站源码利于优化,罗湖网站建设费用openAI兴起,于是拿着之前小组合作的项目(承认优化较差),交给AI试着帮忙优化下1.功能函数(TCP_SER_INIT)优化源代码:int TCP_SER_INIT(int *tcpsocket, const char *ip, const char *…

openAI兴起,于是拿着之前小组合作的项目(承认优化较差),交给AI试着帮忙优化下

1.功能函数(TCP_SER_INIT)优化

源代码:

int TCP_SER_INIT(int *tcpsocket, const char *ip, const char *port)
{int res, optval = 1;// TCP通信结构体构建struct sockaddr_in ser = {.sin_family = AF_INET,.sin_port = htons((short)atoi(port)),.sin_addr.s_addr = inet_addr(ip),};*tcpsocket = socket(AF_INET, SOCK_STREAM, 0);if (-1 == *tcpsocket){ERR_MSG("socket");return -1;}// 允许端口快速重复使用res = setsockopt(*tcpsocket, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval));if (-1 == res){ERR_MSG("setsockopt");return -1;}res = bind(*tcpsocket, (struct sockaddr *)&ser, sizeof(ser));if (-1 == res){ERR_MSG("bind");return -1;}res = listen(*tcpsocket, 128);if (-1 == res){ERR_MSG("listen");return -1;}printf("等待客户端链接...\n");return 0;
}

优化后代码:

// TCP通信结构体构建
struct sockaddr_in ser = {.sin_family = AF_INET,.sin_port = htons((short)atoi(port)),.sin_addr.s_addr = inet_addr(ip),
};*tcpsocket = socket(AF_INET, SOCK_STREAM, 0);
if (-1 == *tcpsocket)
{ERR_MSG("socket");return -1;
}// 允许端口快速重复使用
res = setsockopt(*tcpsocket, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval));
if (-1 == res)
{ERR_MSG("setsockopt");return -1;
}res = bind(*tcpsocket, (struct sockaddr *)&ser, sizeof(ser));
if (-1 == res)
{ERR_MSG("bind");return -1;
}res = listen(*tcpsocket, 128);
if (-1 == res)
{ERR_MSG("listen");return -1;
}printf("等待客户端链接...\n");
return 0;

反思:

优化前后的差别: 优化前,主要出现在每一次操作之后都要判断操作是否成功,返回相应的值; 优化后,通过将操作结果判断和返回值放在操作一起,简化了代码,使之更加简洁易读。

2.手动控制线程代码优化

源代码:

void *pthread_manual(void *arg)
{while (1){int which;msg_t *sendmsg = (msg_t *)arg;if (sendmsg->type & LED1_ON){which = 1;ioctl(fd_led1, IO_LED_ON, &which);}if (sendmsg->type & LED1_OFF){which = 1;ioctl(fd_led1, IO_LED_OFF, &which);}if (sendmsg->type & LED2_ON){which = 2;ioctl(fd_led2, IO_LED_ON, &which);}if (sendmsg->type & LED2_OFF){which = 2;ioctl(fd_led2, IO_LED_OFF, &which);}if (sendmsg->type & LED3_ON){which = 3;ioctl(fd_led3, IO_LED_ON, &which);}if (sendmsg->type & LED3_OFF){which = 3;ioctl(fd_led3, IO_LED_OFF, &which);}if (sendmsg->type & BUZZER_ON){ioctl(fd_buzzer, IO_BUZZER_ON);}if (sendmsg->type & BUZZER_OFF){ioctl(fd_buzzer, IO_BUZZER_OFF);}if (sendmsg->type & FAN_ON){ioctl(fd_fan, IO_FAN_ON);}if (sendmsg->type & FAN_OFF){ioctl(fd_fan, IO_FAN_OFF);}if (sendmsg->type & MOTOR_ON){ioctl(fd_motor, IO_MOTOR_ON);}if (sendmsg->type & MOTOR_OFF){ioctl(fd_motor, IO_MOTOR_OFF);}}
}

优化后代码:

    //循环处理每个设备for(int i=0; i<6; i++){which = device[i];if (sendmsg->type & LED1_ON){ioctl(fd_led1, IO_LED_ON, &which);}if (sendmsg->type & LED1_OFF){ioctl(fd_led1, IO_LED_OFF, &which);}if (sendmsg->type & LED2_ON){ioctl(fd_led2, IO_LED_ON, &which);}if (sendmsg->type & LED2_OFF){ioctl(fd_led2, IO_LED_OFF, &which);}if (sendmsg->type & LED3_ON){ioctl(fd_led3, IO_LED_ON, &which);}if (sendmsg->type & LED3_OFF){ioctl(fd_led3, IO_LED_OFF, &which);}if (sendmsg->type & BUZZER_ON){ioctl(fd_buzzer, IO_BUZZER_ON);}if (sendmsg->type & BUZZER_OFF){ioctl(fd_buzzer, IO_BUZZER_OFF);}if (sendmsg->type & FAN_ON){ioctl(fd_fan, IO_FAN_ON);}if (sendmsg->type & FAN_OFF){ioctl(fd_fan, IO_FAN_OFF);}if (sendmsg->type & MOTOR_ON){ioctl(fd_motor, IO_MOTOR_ON);}if (sendmsg->type & MOTOR_OFF){ioctl(fd_motor, IO_MOTOR_OFF);}}}

反思:

优化前:

上面的代码中,在给LED1,LED2,LED3,Buzzer,FAN,MOTOR的控制语句中,which变量的值都是写死的,如果需要控制的设备添加,这样的写法会比较复杂且容易出错。

优化后:

可以将控制的设备的which值存储在一个数组中,循环处理每个设备,这样只要添加新的设备,只需要在数组中添加新的which值即可,比优化前更加简单,也更容易维护。

http://www.dt0577.cn/news/3779.html

相关文章:

  • 做服装团购有哪些网站有哪些网站模板哪里好
  • 建设局网站社会批次审核宣传营销方式有哪些
  • 怎么介绍vue做的购物网站项目今日热点新闻事件
  • 网站 流程抖音矩阵排名软件seo
  • 网站建设套餐价格市场营销手段13种手段
  • 百兆独享 做资源网站百度 营销推广是做什么的
  • 网站开发费用报价广州seo顾问服务
  • 沛县专业做网站网络平台推广方案
  • 基于php网站开发环境下载百度app最新版并安装
  • 做产品网站多少钱十大跨界营销案例
  • 网站建设的脑图规划强强seo博客
  • c 网站开发视频教程池州网站seo
  • 网站建设流程资讯站长之家关键词挖掘工具
  • miit网站备案培训网站源码
  • 向公司申请请做网站今日头条最新消息
  • 一个专做特卖的网站什么是网站推广优化
  • 一个刚有官网的公司怎么做网站运营湖南网站建设营销推广
  • 网站备案需要什么东西太原企业网站建设
  • 用织梦做网站还要不要服务器网店seo是什么意思
  • 营销型网站 开源程序微软优化大师
  • 高品质网站开发给公司建网站需要多少钱
  • 常用网站建设技术可以营销的十大产品
  • 网站制作多久怎样做网络销售平台
  • 鹰潭手机网站建设爱站工具包的模块有哪些
  • 住房与住房建设部网站地推是什么
  • 美食网站的设计与制作辽宁网站seo
  • 个人cms网站电商网站建设方案
  • 小偷程序做的网站能用吗网站优化技术
  • 温州微网站上海搜索引擎优化公司排名
  • 网站系统修改不了怎么回事中国十大企业管理培训机构