要参与C语言项目,于是作者只好重拾C语言(之前都是C++,还是C++方便)。 看到大家都推荐看看 C陷阱与缺陷(C traps and pitfalls),于是好奇的开始了这本书的读书之旅。 决定将书中重要的知识点和易错点记录下来方便自己复习和他人学习~~不多说了,下面开始。 第一章:词法陷阱 其实 ...
分类:
其他好文 时间:
2017-08-24 01:07:43
阅读次数:
186
第一章 词法“陷阱” 1、 =不同于== if(x = y) break; 实际上是将y赋给x,再检查x是否为0。 如果真的是这样预期,那么应该改为: if((x = y) != 0) break; 2、 &和| 不同于 && 和 || 3、词法分析中的“贪心法” 编译器将程序分解成符号的方法是:从 ...
分类:
其他好文 时间:
2017-07-18 00:06:59
阅读次数:
194
这本书很薄,仅有150来页,打算花上这个下午时间来消化。下面是读书笔记: 第1章 词法陷阱 第2章 语法陷阱 第3章 语义陷阱 第4章 连接 第5章 库函数 第6章 预处理器 第7章 可移植性缺陷 第8章 建议与答案 ...
分类:
其他好文 时间:
2016-10-11 21:06:20
阅读次数:
199
《C陷阱与缺陷》是由Andrew Koenig所著,高巍译。Andrew Koenig是AT&T大规模程序研发部(前贝尔实验室)成员,不仅有着多年的C++开发,研究和教学经验,而且还亲身参与了C++的演化和变革,对C++的变化和发展起到重要的影响。
第一章 词法陷阱
编译器中负责将程序分解为一个一个符号的部分,一般称为“语法分析器”。
1.1 ...
分类:
其他好文 时间:
2015-08-04 11:30:58
阅读次数:
124
第一章:词法陷阱编译器中负责将程序分解为一个一个符号的部分,一般称为“词法分析器”。例如,对于语句:if ( x == big ) big = x ;它的第一个符号是C语言关键字if,紧接着下一个符号是左括号,在下一个符号是标识符x,在下一个是大于号,在下一个是标识符big,以此类推。在C语言中,符...
分类:
其他好文 时间:
2015-01-14 14:02:37
阅读次数:
110
1.3 词法分析中的‘贪心法’
每个符号应该包含尽可能多的字符。需注意的是符号中间不能有空格。
a---b等同于表达式a -- - b
但是不同于a - -- b
y/*p; /*被解释为一段注释的开始
正确有意义的写法应该是y=x/ *p或者y=x/(*p);
1.5 字符与字符串
用单引号引起的一个字符实际上代表一个整数。
用双引号引起的字符串,代表的却...
分类:
其他好文 时间:
2014-08-09 16:01:08
阅读次数:
246
1. 词法“陷阱”= 不同于 == , 可以通过if( 1 == a )来避免& | 不同于 && ||词法分析中的“贪心法”编译器将程序分解成符号的方法是,从左到右一个字符一个字符地读入,如果该字符可能组成一个符号,那么再读入下一个字符,判断已经读入的两个字符组成的字符串是否可能是一个符号的组成部...
分类:
其他好文 时间:
2014-07-25 14:17:11
阅读次数:
296
看完《C陷阱与缺陷》,忍不住要重新翻一下,记录一下与自己的惯性思维不符合的地方。记录的是知识的增量,是这几天的流量,而不是存量。这本书是在ASCI C/C89订制之前写的,有些地方有疏漏。第一章 词法陷阱1.3 C语言中解析符号时使用贪心策略,如x+++++y将被解析为x++ ++ +y,并编译出错...
分类:
其他好文 时间:
2014-06-30 23:20:10
阅读次数:
343
看完《C陷阱与缺陷》,忍不住要重新翻一下,记录一下与自己的惯性思维不符合的地方。记录的是知识的增量,是这几天的流量,而不是存量。
这本书是在ASCI C/C89订制之前写的,有些地方有疏漏。
第一章 词法陷阱
1.3 C语言中解析符号时使用贪心策略,如x+++++y将被解析为x++
++ +y,并编译出错。1.5 单引号引起的一个字符代表一个对应的整数,对于采用ASCII字符集的编译...
分类:
其他好文 时间:
2014-06-30 20:19:44
阅读次数:
202
前言和导读
“得心应手的工具在初学时的困难程度往往超过那些容易上手的工具。”比较认同这句话。我至今觉得自己其实还是个刚入了门的初学者。
第一章 “词法”陷阱
由于之前学过编译原理,对编译器词法分析(主要是符号识别过程)比较了解,理解起来不困难。
在讲到"="和"=="、"|"和"||"、"&"和"&&"时,联想起以前见过一些程序中出现了类似...
分类:
其他好文 时间:
2014-06-08 17:12:04
阅读次数:
263