关于default的位置问题:default放在前面

      在linux内核的文件系统中,有这样的一段代码:

473                 if (this.name[0] == '.') switch (this.len) {
 474                         default:
 475                                 break;
 476                         case 2:
 477                                 if (this.name[1] != '.')
 478                                         break;
 479                                 follow_dotdot(nd);
 480                                 inode = nd->dentry->d_inode;
 481                                 /* fallthrough */
 482                         case 1:
 483                                 continue;
 484                 }

        default的位置放在了前面,这样会导致默认先进入default分支从而影响到程序的逻辑吗?

        答案:在程序中default的位置可以任意,因为编译到exe后,程序执行时先判断所有case,然后再判断是否跳到default的地址(即指针),然后往后执行,遇到break之类的就直接跳到后面去了。(而各case和default的内嵌语句又是顺序的)


本文来源:谁不小心的csdn博客:关于default的位置问题:default放在前面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值