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

网站建设作业多少钱遵义市做网站设计公司

网站建设作业多少钱,遵义市做网站设计公司,深圳电商网络网站,用iis做的网站怎么更改端口编写不易,禁止搬运,仅供学习,感谢理解 问题现象 下面是一个在keil5里面写的一个,int类型的返回值函数,这个函数里面,只有if else if else这三个判断条件语句,正常来说任何情况下,…

                                        编写不易,禁止搬运,仅供学习,感谢理解

问题现象

        下面是一个在keil5里面写的一个,int类型的返回值函数,这个函数里面,只有if  else if  else这三个判断条件语句,正常来说任何情况下,函数执行只会执行函数中的其中一个的判断语句条件,不论执行的是哪一个判断语句条件,这个时候都会有函数返回值,函数如下。

int Scanf_Bit_IO_Function(void)
{GLED_Open();if(!LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_2)&&!LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_1)){GLED_Close();YLED_Open();LL_mDelay(200);Beer_Start();if(LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_2)||LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_1)){//这个时候短接过后有不断接了,停掉黄灯YLED_Close();return 0;//执行到return 就会结束函数当前调用,因为在while里面就会再次进行调用}}else if(!LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_3)&&!LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_6)){GLED_Close();YLED_Open();LL_mDelay(200);Beer_Start();if(LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_2)||LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_1)){		//这个时候短接过后有不断接了,停掉黄灯YLED_Close();return 0;//执行到return 就会结束函数当前调用,因为在while里面就会再次进行调用	}}else{return 1;//这个时候代表没有检测到下拉}}

        当时在实际编译的过程中,keil5编译器是有一条warning的,虽然warning不影响烧录程序,当时为了弄明白是怎么回事,就开始研究了。

..\driver\gpio.c(168): warning:  #940-D: missing return statement at end of non-void function "Scanf_Bit_IO_Function" }
..\driver\gpio.c: 1 warning, 0 errors

        这里的话,这个警告提示我们,这个函数少了一个返回值,当时按照函数逻辑来讲,函数在任何情况下,是不会少返回值的。

问题本质理解

        这个时候需要占在keil5编译器的角度去理解问题,keil5在检查代码的时候,通常只进行静态分析,不会运行代码,他不会尝试所有可以运行的代码路径,在代码里面虽然,if-else if-else包含了所有的可能行,但是编译器不能推断。

        在keil5编译器的角度里面,当if else if的条件为false的时候,同时跳出else这种情况,虽然我们知道这种情况是不可能发生的。

        但是编译器不这么认为,他认为如果发生这种情况仍然,会返回位置的数值。

如何解决问题

        上面已经描述了,出现问题的情况,所以这里只需要把,编译器认为会出现没有返回值的情况,在加上return 1 ; 就可以了。

        

int Scanf_Bit_IO_Function(void)
{GLED_Open();if(!LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_2)&&!LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_1)){GLED_Close();YLED_Open();LL_mDelay(200);Beer_Start();if(LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_2)||LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_1)){//这个时候短接过后有不断接了,停掉黄灯YLED_Close();return 0;//执行到return 就会结束函数当前调用,因为在while里面就会再次进行调用}}else if(!LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_3)&&!LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_6)){GLED_Close();YLED_Open();LL_mDelay(200);Beer_Start();if(LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_2)||LL_GPIO_IsInputPinSet(Scanf_Port, Set_Pin_1)){		//这个时候短接过后有不断接了,停掉黄灯YLED_Close();return 0;//执行到return 就会结束函数当前调用,因为在while里面就会再次进行调用	}}else{return 1;//这个时候代表没有检测到下拉}return 1;//加上return 让编译器不会报错
}

                                        欢迎指正,希望对你,有所帮助!!!

http://www.yayakq.cn/news/152928/

相关文章:

  • 四川铁科建设监理公司网站深圳建工是国企还是私企
  • 怎么做网站给国外看见做网站手机软件
  • 网站google搜索优化做网站费用列入什么科目
  • 宝山网站推广小学生抄写新闻20字
  • 响应式网站和自适应重庆网站建设培训机构
  • 贵港购物网站开发设计啥是东莞网站制作公司
  • 重庆制作网站速成班物流网站建设
  • 平原网站建设价格微信信公众号平台
  • 企业为什么网站建设怎么才能让自己做的网站上传到百度搜关键字可以搜到
  • 口碑好的江苏网站建设网站设计 线框图
  • 做五金的有哪些外贸网站南通开发区人才网
  • 如何做网站内容构架图网站备案号信息查询
  • php是网站开发语言吗国外采购网站大全
  • 基于html5的旅游网站的设计与实现网站里的动画效果
  • 和幼儿做网站自己的电脑做网站服务器 买的服务器 速度
  • 沈阳网站推广优化公司昭通市住房和城乡建设局网站
  • 淄博专业网站建设哪家专业网站建设技术是干嘛的
  • 手机网站刷排名海口免费自助建站模板
  • 中国建设银行招聘信息网站用asp做网站需要安装什么软件
  • 数据库网站建设欧洲卡一卡2卡3卡4卡
  • 淘客网站开发源代码建站网站加盟
  • 网站特效怎么做的学校网站建设 分工
  • 网站开发的需求分析教学视频深圳市国外网站建设服务机构
  • 福建省建设工程资格中心网站北京seo顾问
  • 谁有做网站比较厉害的杭州有哪些互联网公司
  • 乐都网站建设wordpress 制作app
  • ps里新建网站尺寸怎么做汽车网新车报价大全
  • 网站推广方式和手段企业管理方法
  • 装修网站免费王野天女明星
  • 专业网站设计学校西安建设工程交易信息网