您的位置:首页 > 其它

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

2013-07-17 21:10 176 查看
在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放在前面
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐