刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。(20分)

 

【说明】微内核架构的软件内核相对较小,主要功能和业务逻辑都通过插件实现。某国产通信芯片操作系统使用了微内核架构,其插件与核心系统通过命令方式实现通信。

其通信功能中,获取命令函数主要完成命令获取及通过校验和判断是否为合法命令,如果为合法命令,则函数返回命令字前4字节,否则返回错误码。命令最大长度为16个字节,命令格式为:

具体函数实现如图所示:

根据函数描述功能,指出存在的一处逻辑错误并改正。

使用微信搜索喵呜刷题,轻松应对考试!

答案:

逻辑错误:if((cmdLen ==0 ) & (cmdLen > MAXCMD ))  {    /*长度合法性检查*/

return -1;

      }

应该正为:if((cmdLen ==0 ) || (cmdLen > MAXCMD ))  {    /*长度合法性检查*/

return -1;

      }

解析:

根据函数描述功能,该函数需要判断命令长度是否合法。如果命令长度为0或者大于最大命令长度MAXCMD,都应该认为命令长度不合法。在条件判断中,应该使用逻辑或运算符(||)连接两个条件,表示只要满足其中一个条件,就执行相应的操作。而原代码中使用了按位与运算符(&),这要求两个条件同时满足才会执行操作,这是逻辑上的错误。因此,需要将按位与运算符(&)改为逻辑或运算符(||)。

创作类型:
原创

本文链接:根据函数描述功能,指出存在的一处逻辑错误并改正。

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share