`

《c缺陷和陷阱》(c traps and pitfalls) 读书笔记摘录

    博客分类:
  • C++
 
阅读更多

1. 返回指向函数的指针这样的函数怎么定义
   
2. 牢记运算符优先级别
    (),[],.,->优先级别高> 单目运算符 > 双目运算符号(算术运算 > 移位运算 > 关系运算 > 逻辑运算 > 三目运算 > 赋值运算 > 逗号运算)

3. C语言允许初始化列表中出现多余的逗号。
    int days[] = { 31, 28, 31, 30, 31, 30,
          31, 31, 30, 31, 30, 31, };
注解:这样设计的目的是方便代码美化工具的方便,如果换一种方式书写就更容易理解了。
int days[] = {
            31, 28, 31, 30, 31, 30,
            31, 31, 30, 31, 30, 31,
};

4. 分隔函数参数的逗号并非逗号运算符。例如f(x,y)则x与y的求值顺序是未定的,但是f((x,y))的顺序是确定的,并且该函数只有一个参数。

5. 一个宏如果不带参数,则只需要使用宏名即可,括号无关紧要

6. assert的定义到底是怎样的,使用中不加分号????
   assert定义中并没有加分号。

7. putc的c函数实现
   

8. 可移植性问题可以参考的书目有:《How to Write Portable Software in C(Prentice-Hall)》

9. 自定义的EOF=-1为什么会在 while((c=getchar())!= EOF){}中比系统的慢(前提是去掉 #include <stdio.h>)???
    因为stdio.h中的getchar()是宏实现的,所以在去掉stdio.h后,c编译器将其认为是函数,函数的调用开销当然比宏定义的开销要大。

10. 一个常见的错误:如果c是一个字符变量,使用(unsigned ) c 就可得到与c等价的无符号整数。但这是会失败的,因为在将字符c转换为无符号整数时,c将首先被转换为int型整数,而此时可能得到非预期的结果。
    正确的方式是使用语句(unsigned char ) c, 因为一个unsigned char类型的字符在转换为无符号整数时无需首先转换为int型整数,而是直接进行

转换。

11. 《C++沉思录》数目,先列在这里了,以后有空看。

12. 不对称边界问题,例如对于有符号数,一般是表示的负数范围比表示的整数范围大1, 鉴于这种结果在处理类似于将负数取反转换成整数时,然后利用相同的代码段对数字进行处理时很有可能因为这个不对称边界而出错,潜在的bug。如果测试人员很有经验可以测试出来,否则,就是未来的一个隐患。

 

分享到:
评论

相关推荐

    c_traps_and_pitfalls.zip

    在这个压缩包文件中,包含了一个名为“c_traps_and_pitfalls.pdf”的PDF文档,很可能是这本书的电子版。 C语言是计算机科学中的基础编程语言,它的简洁性和灵活性使其在软件开发中占据着重要的地位。然而,这种灵活...

    [pptx] C traps and pitfalls

    自己写的一个介绍《C traps and pitfalls 》的ppt

    C语言书籍,不是很常见,但内容很不错

    1. "c traps and pitfalls":这本书由Andrew Koenig撰写,它不仅讲解了C语言的基础,还特别关注了C语言中容易出错的部分,比如内存管理、类型转换等陷阱,是程序员避免错误和提高代码质量的必备读物。 2. "C高级...

    The_C_Programming_Language(C语言经典三本书)

    三合一 &gt; &gt; The_C_Programming_Language.pdf &gt; C Traps and Pitfalls.pdf &gt; Expert C Programming.pdf &gt; 全部英文清晰版。 学习C语言只需要这三本书。

    Java™ Puzzlers: Traps, Pitfalls, and Corner Cases.chm

    Java™ Puzzlers: Traps, Pitfalls, and Corner Cases.chm,英文版本,chm 格式,大小 1 Mb,作者:Joshua Bloch、Neal Gafter。 内容预览: Chapter 1. Introduction Chapter 2. Expressive Puzzlers Puzzle 1: ...

    标准c语言笔记.pdf

    本文档是一份标准C语言的学习笔记,内容涵盖了结构体、宏定义、操作符优先级、函数声明等知识点,是结合作者在C/C++开发经历和阅读《THE C PROGRAMMING LANGUAGE》以及《C Traps and Pitfalls》等书籍的总结。...

    Traps and Pitfalls of Topic-Biased PageRank-计算机科学

    Traps and Pitfalls of Topic-Biased PageRankPaolo Boldi∗ Roberto Posenato† Massimo Santini Sebastiano Vigna Dipartimento di Scienze dell’Informazione, Università degli Studi di Milano, Italyand† ...

    c语言经典4本书 精通c语言必备的书籍

    3. **《C陷阱与缺陷》**(C Traps and Pitfalls):作者Andrew Koenig以幽默风趣的语言,讲述了C语言中容易出错的地方,以及如何避免这些陷阱。这本书不仅讲解了常见的错误,还分析了其产生的原因,让读者在实践中...

    C语言经典学习资料

    3. **C Traps and Pitfalls**:由Andrew Koenig编写,该书关注的是C语言中容易犯错的地方,即陷阱和陷阱。通过揭示常见的编程错误和潜在的陷阱,读者可以避免在实际编程中遇到这些问题,提高代码质量和可靠性。 在...

    Addison.Wesley.Professional.Java.Puzzlers.Traps.Pitfalls.and.Corner.Cases

    Java™ Puzzlers features 95 diabolical puzzles that educate and entertain. Anyone with a working knowledge of Java will understand the puzzles, but even the most seasoned veteran will find them ...

    C语言经典书籍推荐

    5. **《C陷阱与缺陷》(C Traps and Pitfalls)**:Andrew Koenig的著作,揭示了C语言中容易导致错误的一些常见陷阱,帮助程序员避免常见的编程误区。 6. **《C语言接口与实现》(C Interfaces and Implementations...

    需求陷阱 Requirement Traps

    ### 需求陷阱 Requirement Traps #### 一、引言 在软件开发过程中,需求分析阶段至关重要。正如卡尔·E·韦格斯(Karl E. Wiegers)在其著作中所强调的那样,高质量的软件始于卓越的需求。忽视需求开发与管理流程...

    c语言相关书籍收藏

    - 《C陷阱与缺陷》(C Traps and Pitfalls):这本书揭示了C语言中容易犯错的地方,对初学者和有经验的开发者都有很大帮助。 - 《Effective C++》和《More Effective C++》:这两本书由Scott Meyers撰写,提供了...

    The C++ Standard Library A Tutorial and Reference (2nd Edition).zip

    traps and pitfalls; the exact signature and definition of the most important classes and functions; and numerous examples of working code. The book focuses in particular on the Standard Template ...

    程序员之路 如何学习C语言并精通C语言

    - 《C陷阱与缺陷》(CTraps and Pitfalls) 介绍了C语言中常见的错误和陷阱,帮助读者避免常见的编程问题。 - 《专家C编程》(Expert C Programming) 深入探讨了高级C语言技巧,适合已经有一定基础的学习者进一步提高...

    C语言高级编程.doc

    2. **《C Traps and Pitfalls》**:由Andrew Koenig创作,这本书主要关注C语言中的潜在问题和陷阱,如类型转换、内存管理、指针操作、错误处理和程序效率。通过实例,它提醒程序员注意那些容易导致错误的编程习惯,...

    转《学习C语言心得》

    在熟练掌握C语言基础后,可以阅读《C Traps and Pitfalls》来了解可能遇到的陷阱和缺陷,以及《C专家编程》来提升到更高层次。阅读这些书籍需要根据自身的理解能力,避免阅读超出现有能力范围的材料,以免浪费时间。...

    C语言进阶-嵌入式系统高级C语言编程.pptx

    课程的参考书籍包括《The C Programming Language》、《C Primer Plus》、《C Traps and Pitfalls》等经典著作,这些书籍为学生提供了系统的C语言编程知识和经验总结。 在课程的最后,学生需要提交一个项目,以证明...

Global site tag (gtag.js) - Google Analytics