回答
是的。您可以通过编译带有或不带有空语句的应用程序并在编译的应用程序上检查md5校验和来查看。
是的,因为分号只是语法。它只是告诉解析器语句结束的地方。解析器将剥离“空语句”,就像词法分析器剥离不需要的空白语句一样。
eek ...划伤“非常喜欢它剥去空白”。词法分析器剥离空白,解析器发出空语句,并通过优化步骤生成不必要的语句(如“if(false){...}”)。细微的区别。 – riwalk
@ Stargazer712:好的,谢谢。 –
空语句(就像你引用的那样)通常被解析器识别,甚至不会将它放到抽象语法树中。
所以是的,他们绝对被删除。
我喜欢这个答案最好,解析器消除它,所以编译器甚至从来没有看到它。无论您是否打开或关闭了优化,都会发生这种情况;在这种情况下,它甚至不是编译器的功能。 – mattypiper
- 1. C/C++编译器优化条件语句多少钱?
- 2. C/C++编译器是否会优化if语句?
- 3. 编译器谓语优化
- 4. C++编译器优化
- 5. 为什么编译器不能优化这两条语句?
- 6. CLR语言优化。语言编译器VS JIT编译器
- 7. Requirejs优化器不编译
- 8. 编译器优化
- 9. 编译器优化
- 10. 虚拟函数编译器优化C++
- 11. C编译器结构优化
- 12. C#编译器优化循环?
- 13. C++ 0x优化编译器质量
- 14. C#JIT编译器是否优化了空检查?
- 15. C#空合并运算符(?)编译器代码优化
- 16. Java编译器优化
- 17. 克++编译器的优化
- 18. 编译器优化问题
- 19. 二郎编译器优化
- 20. 编译器优化实现
- 21. 编译时编译器跳过语句?
- 22. 编译器为什么不优化?
- 23. C#编译器不会优化不必要的转换
- 24. 汇编语言优化器
- 25. MySQL优化语句
- 26. LINQ语句优化
- 27. c# - 优化SQLite选择语句
- 28. 为什么不能C#编译器贯彻switch语句
- 29. F#编译器是否支持与C#编译器相同的foreach优化
- 30. 用优化标志编译C
我宁愿看IL,然后MD5 ... –
+1 ...但使用Reflector,ILSpy等可能是向您自己证明空白语句已被删除的更好方法。由于与空语句不一定相关的更改,MD5总和可能会发生变化。 – Steve