program:switch case 语句 & 函数声明要注意!!!

在网上有很多的资料上写着,default 这个语句的后面是不用加break语句的,其实是在switch 中的哪一个分支,后面都要加上break语句的,

switch case 语句执行顺序就是先执行case 语句,等到case 语句全部执行完了,他在执行default 语句最后的结束条件是break语句
但是由于一般的写法下,default 后面就是switch 的括号,所以,在default 后面加一个break意义不太大,这样有的人才说,default 后面的break 是加不加都行
在switch (num)中的num 是有范围的,只能是字符,短整,长整,整形。。。

进入case 之后会在他的下面执行的语句,什么才是一个语句,
什么是一个变量的声明,语句包含一个变量的声明么?

标号只能是语句的一部分,而声明并非语法

在网上有人认为这样就是出现了,在case 中定义了变量,出现的问题,只要在case中加入括号就可以把这个错误解决掉,而且他还认为由于switch中的case语句在同一个作用域,(因为case语句只是一个标签,他们共属于一个switch语句块),所以如果在某个case下声明了变量的话,其他的case语句也能看到,这样的话就可能导致错误,例如,在一段代码中的case 1 后面还有一个case2的话,且case 2中使用了case 1定义的变量的话,那么如果运行时,n = 2,swich 直接条转到case 2 内部,这样就出现了 i 还没有初始化的事情了,(变量在声明实在编译阶段,而变量的赋值则在运行时),如果能运行的话,则在case 2中,i没有是一个未知的值,所以编译其直接避免这种事情发生,就让其编译无法通过。

在实验中出现如下的警告信息:
warning: #1295-D: Deprecated declaration KEY_Scan - give arg types
查询了一下,就是说:
deprecated declaration即不赞成的声明方式,
这样的申明是错误的。
我们应该换一个方式来对我们的函数进行申明。
这个原因主要是:
realview mdk(也就是常用的Keil)不占成参数是空的,空的的时候必须写明void
解释的很合理,如下:
“void test()”会报warning,而“void test(void)”不会
因而我们在申明是应该采取的是后者!空的时候应该写明void!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值