C语言编程总结--程序员必须知道的77条编程细节.doc_第1页
C语言编程总结--程序员必须知道的77条编程细节.doc_第2页
C语言编程总结--程序员必须知道的77条编程细节.doc_第3页
C语言编程总结--程序员必须知道的77条编程细节.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言编程总结-程序员必须知道的77条编程细节 分类: C语言学习 心得体会 2010-08-08 19:33 63人阅读 评论(1) 收藏 举报 转载请注明出处:/ecorefeng 在编程过程中会遇到各种各样的错误与警告,这里我对编程过程中经常遇到的细节或者说常出错的地方进行了简单的总结,希望对正在编程的“童鞋”有所帮助: C语言编程提示的总结: 1:使用 #include 指令避免重复声明 2:使用 #define 指令给常量值取名 3:在 #include 文件中放置函数原型 4:在使用下标前先检查它们的值 5:在 while 或 if 表达式中蕴含赋值操作 6:如何编写一个空循环体 7:始终要进行检查,确保数组不越界 8:良好的程序风格和文档将使程序容易阅读和维护 9:为了保持最佳的可移植性,把字符的值限制在有符号和无符号字符范围的交集之内,或者不要在字符上执行算术运算 10:用它们在使用时最自然的形式来表示字面值 11:不要把整型值和枚举值混在一起使用 12:不要依赖隐式声明 13:在定义类型的新名字时,使用 typedef 而不是 #define 14:用 const 声明其值不会修改的变量 15:使用名字常量而不是字面值常量 16:不要在嵌套的代码块之间使用相同的变量名 17:在一个没有循环体的循环中,用一个分号表示空语句,并让它独占一行 18: for 循环的可读行比 while 循环强,因为它把用于控制循环的表达式收集起来放在一个地方 19:在每个 switch 语句中都使用 default 子句 20:使用符号赋值符可以使用程序更容易维护 21:使用条件操作符代替 if 语句以简化表达式 22:使用逗号操作符来消除多余的代码 23:不要混用整型和布尔型值 24:一个值应该只具一种意思 25:如果指针并不指向任何有意义的东西,使它非法地指向了数组第 1 个元素的前面的内存位置 26:在函数原型中使用参数名,可以给使用该函数的用户提供更多的信息 27:抽象数据类型可以减少程序对模块实现细节的依赖,从而提高程序的可靠性 28:当递归定义清晰地优点可以补偿它的效率开销时,就可以使用这个工具 29:一开始就编写良好的代码显然比依赖编译器来修正劣质代码更好 30:源代码的可读性机会总是比程序的运行时效率更为重要 31:只要有可能,函数的指针参都应该声明为 const 32:在有些环境中,使用 register 关键字提高程序的运行时效率 33:在多维数组的初始值列表中使用完整的多层花括号能提高可读性 34:不要试图自己编写功能相同的函数来取代库函数 35:使用字符分类和转换函数可以提高函数的移植性 36:把结构标签声明和结构的 typedef 声明放在头文件中,当源文件需要这些声明时可以通过 #include 指令把它们包含进来 37::结构成员的最佳排列形式并不一定就是考虑边界对齐而浪费空间最少的那种排列形式 38:把位段成员显示地声明为 signed in 或 unsigned 类型 39:位段是不可移植的 40:位段时源代码中位的操作表达得更为清楚 41:动态内存分配有助于消除程序内部存在的限制 42:使用 sizeof 计算数据类型的长度,提高程序的可移植性 43:消除特殊情况使代码更容易维护 44:通过锻炼语句消除 if 语句中的重复语句 45:不要仅仅根据代码的大小评估它的质量 46:如果并非必要,避免使用多层间接访问 47: cdecl 程序可以帮助你分析复杂的声明 48:把 void* 强制转换为其他类型的指针时必须小心 49:使用转移表时,应始终验证下标的有效性 50:破坏性的命令行参数处理方式使你以后无法再进行处理 51:不寻常的代码始终应该加上一条注释,描述它的目的和原理 52:避免用 #define 指令定义可以用函数实现的很长序列的代码 53:在那些对表达式求值的宏中,每个宏参数出现的地方都应该加上括号,并且在整个宏定义的两边也加上括号 54:避免使用 #define 宏创建一种新语言 55:采用命名约定,使程序员很容易看出某个标识符是否为 #define 宏 56:只要合适就应该使用文件包含,不比担心它的额外开销 57:头文件只应该包含一组函数和(或)数据的声明 58:把不同集合的声明分离到不同的头文件中可以改善信息隐藏 59:嵌套的 #include 文件使我们很难判断源文件之间的依赖关系 60:在可能出现错误的场合,检查并报告错误 61:操纵文本行而无需顾及它们的外部标识形式,这个能力有助于提高程序的可移植性 62:使用 scanf 限定提高可移植性 63:当你打印长整数时,即使你所使用的机器并不需要,坚持使用 1 修改符可以提高可移植性 64:滥用 setjmp 和 longjmp 可能导致晦涩难懂的代码 65:对信号进行处理将导致程序的可移植性变差 66:使用断言可以简化程序的调试 67:避免使用具有副作用的函数可以使程序更容易理解 68:一个模块的接口应该避免暴漏它的细节 69:将数据类型参数化,是它更容易修改 70:只有模块对外公布的接口才应该是公用的 71:使用断言来防止非法操作 72:几个不同的实现使用同一个通用接口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论