跳至内容
响水凹
欢迎来到 Guang-Wen Duan (Dennis Duan) 的个人 Wiki
用户工具
登录
站点工具
搜索
工具
显示页面
过去修订
反向链接
最近更改
媒体管理器
网站地图
登录
>
最近更改
媒体管理器
网站地图
您的足迹:
computer:c:tips:greedy_rule
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== 词法分析的贪心法则 ====== 编译器在进行词法分析时,总是从左到右,尽可能的获取词法单位,即使最终可能导致错误的程序。 例如: <code c> b--x; </code> 词法分析的结果为b,%%--%%,x,这是一个无效的语句。虽然分解为b,-,-,x能得到合法的结果,但这不是编译器的行为。 这种处理策略称为“贪心法”。 <note> 除了字符常量和字符串常量,符号的中间不能有空白字符。如==是一个符号,而= =则是两个符号。 </note> 好的编程风格之一,就是合理的使用空白分隔符号,不仅是为了代码的可读性,还可以避免潜在的错误。 比如: <code c> y = x/*p /* p指向除数 */; </code> 本意是x除以p指向的值,结果赋值给y。然而,/*被编译器认为是注释的开始,直到*/出现为止,于是代码实际等于: <code c> y = x; </code> 合理的使用空白或括号,就可以避免这种问题: <code c> y = x / *p; </code> 或 <code c> y = x/(*p); </code> {{tag>C语言}}
computer/c/tips/greedy_rule.txt
· 最后更改: 2014/11/01 02:02 由
127.0.0.1
页面工具
显示页面
过去修订
反向链接
回到顶部