c – 默认位于开关块的开头
发布时间:2020-12-16 06:58:48 所属栏目:百科 来源:网络整理
导读:在浏览解析器的代码时,例如,Parser.cpp里面clang编译器的clang / Parse目录 switch (Close) {default: break;case tok::r_paren : LHSName = "("; DID = diag::err_expected_rparen; break;case tok::r_brace : LHSName = "{"; DID = diag::err_expected_rbr
在浏览解析器的代码时,例如,Parser.cpp里面clang编译器的clang / Parse目录
switch (Close) { default: break; case tok::r_paren : LHSName = "("; DID = diag::err_expected_rparen; break; case tok::r_brace : LHSName = "{"; DID = diag::err_expected_rbrace; break; case tok::r_square: LHSName = "["; DID = diag::err_expected_rsquare; break; case tok::greater: LHSName = "<"; DID = diag::err_expected_greater; break; case tok::greatergreatergreater: LHSName = "<<<"; DID = diag::err_expected_ggg; break; } 我看到默认是在开头.是否有任何理由保持这种方式.通常我们会将默认值保留在最后,所以我有点困惑. 解决方法
只要您包含休息时间,订单就没有区别.
顺便说一句,我喜欢在每个案例或默认值之前立即放置休息时间.验证遵循此规则比尝试展望每个案例陈述的结尾要容易得多. switch (Close) { break; default: break; case tok::r_paren : LHSName = "("; DID = diag::err_expected_rparen; break; case tok::r_brace : LHSName = "{"; DID = diag::err_expected_rbrace; break; case tok::r_square: LHSName = "["; DID = diag::err_expected_rsquare; break; case tok::greater: LHSName = "<"; DID = diag::err_expected_greater; break; case tok::greatergreatergreater: LHSName = "<<<"; DID = diag::err_expected_ggg; } 如果你将break解释为“不要在任何其他情况下陷入这种情况”,你可能会发现这更容易理解.而不是“不要从这个案件陷入任何后续案件.” 在这种布局中,很容易看出是否缺少休息时间,因此迫使作者(和读者)问他/她“我想要在这里进行跟进吗?”.所有的休息时间排得很好,如果一个人失踪就很明显了. 澄清:我的答案中没有“魔力”.我只是以一种对我来说更易读的方式放置我的空白.空白并不重要,因此我可以自由地做到这一点.在交换机的最后一个中断是多余的.如果缺少,则不允许编译器循环到开关的顶部,就好像它是某种while循环一样.同样,交换机一开始的冗余中断不会发生任何变化,必须由编译器接受(并忽略). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- React高阶组件总结
- 如何在postgreSQL(Redshift)数据库中的“大”数据上使用tid
- 创建small表空间size32G报错ORA-01144
- Flex应用BlazeDS时报错解决方法
- 使用Flex4开启用户的摄像头,并且拍照保存
- Cache Fetched AJAX Requests Locally: Wrapping the Fetch
- 聚合数据Android SDK 短信api接口验证演示示例
- ruby – 基于多个键/值对的自定义排序哈希数组
- ruby-on-rails – 如何检查Rails应用程序的Puma的线程安全性
- c# – IDisposable GC.SuppressFinalize(this)位置