Chinaunix首页 | 论坛 | 博客
  • 博客访问: 87291
  • 博文数量: 60
  • 博客积分: 4002
  • 博客等级: 中校
  • 技术积分: 645
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-17 18:11
文章分类

全部博文(60)

文章存档

2011年(60)

我的朋友

分类: C/C++

2011-01-03 17:31:43

    贪心法在c语言里面只是一种问题的处理策略,即:每一个符号应该包含尽可能多的字符。也就是说,编译器将程序分解成符号的方法是,从左到右一个字符一个字符地读入,如果该字符可能组成一个符号,那么再读入一个字符,判断已经读入的字符组成的字符串是否可能是一个符号的组成部分;如果可能,继续读入下一个字符,重复上述判断,直到读入的字符组成的字符串已不再可能组成一个有意义的符号。 
   
    用原作者的话说是:如果(编译器的)输入流截止某个字符之前都已经被分解为一个个符号,那么下一个符号将包括从该字符之后可能组成一个符号的最长字符串。
   
    注:除了字符串和字符常量,符号的中间不能嵌有空白(空格符、制表符和换行符)。

    我们来看个例子。
    a---b 与 a -- - b 含义相同, a---b 与 a - -- b 含义不同
    另:还有一个特殊的情况,在老版本的c语言中 =+ 与 += 含义相同,这样问题就出来了。 a=-1;在老版本的c语言中,含义为:a =- 1;即 a = a - 1;还有就是/*这个现在的注释的开始符号。

    注:参考《c陷阱与缺陷》
阅读(616) | 评论(0) | 转发(0) |
0

上一篇:QA流程

下一篇:libsys

给主人留下些什么吧!~~