`
k_lb
  • 浏览: 805293 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
  • kitleer: 据我所知,国内有款ETL调度监控工具TaskCTL,支持ket ...
    kettle调度

C/C++程序设计注意事项(一)

 
阅读更多
  1. 所有变量定义位于函数开始处。
  2. 尽量避免全局变量,全局变量需于实现文件中定义,头文件中extern声明。
  3. 浮点零值比较采用区间值。
  4. 保证正确的前提下尽量使用移位运算。
  5. If语句、switch语句优先处理出现概率大的情况。
  6. 指针与NULL比较反写如:NULL==p
  7. 循环嵌套时最长的循环放内层短的放外层。
  8. 尽量不在循环体内修改循环变量。
  9. 凡是无返回值、无参数、任意类型指针参数的函数均使用voidvoid指针。
  10. 适当使用const,使用目的限于节省空间、提高效率、不允许修改或可能产生的函数参数修改。
  11. 对于可变、多变的寄存器变量、多线程共享变量,在经过代码优化处理的releas版本下需使用volatile类型修饰符修饰变量。
  12. 多参数函数应使用结构体减少参数个数。
  13. 负数右移操作时会带上符号位,高位补零或补一取决编译器。左移或右移时移动位数不能大于数据的存储位数。
  14. Release版下assert()语句无效,故非调试状态下还是可能出现数据溢出而不报错。
  15. 使用宏定义#define定义文件路径时候使用带双引号、双反斜杠的字符串。宏定义函数时候尽可能的使用括号。宏定义中的换行接续后和行起始处保证无任何字符。
  16. 一种变量名称代表一段有限空间,其内容称为值,c/c++中称之为从左值到右值的转换。另一种变量是一段有限空间的引用,同时规定空间的长度(数组)。
  17. 创建动态二维数组(指向指针的指针)一维使用new char*[一维度] 或者 (char**)malloc(一维度).二维循环于一维下动态创建new char[二维度] 或者(char*)malloc(二维度)。释放动态二维数组刚好相反,先循环释放二维,再释放一维。
  18. 使用vector作为全局变量时候存在问题。release版下push_back()会出现错误,估计是vector本身具有动态扩展性而做为全局变量其空间大小是固定的。如果允许其变量使用push_back添加数据则可能导致堆数据破坏。解决办法是将变量定义于类中并完成push_back再赋值于全局变量。
  19. 利用字符创的结束标识'/0' (其ascII 码是 0,0x00)而非空格(其ascII 码是 32,0x20)可判断字符串结束以否,并可以移动指针的方式计算字符串的大小。
  20. Dll库,不但可以导出函数接口,也可以导出类。如:calss _declspec(dllexport) CALSSNAME{}; class _declspec(dllimport) CLASSNAME{};#pragma comment(lib,"path")。
  21. 合理使用整数的/ 和 % 可取得整数(浮点数整数部分)的各个位数(%10 /10),合理使用h,p,q,t做循环下的指针移动可以构建链表和逆序链表。合理利用数组下标可实现折半循环逆序数组(字符串)
  22. int a= 4; (++a) += (a++) a= ?
  23. 字符数组的大小不要忘了最后的'/0'(字符指针不能使用sizeof(point)计算)。
  24. free后的内存空间只是被标记为了可重新分配,但作为该进程的内存块他依然具有读写权限,为了避免内存混乱需要NULL指针避免野指针的存在。
  25. 不存在下载文件夹的说法,只有下载文件数据和文件目录信息,文件夹于本地创建。
  26. 使用哈希查找加速检索,哈希过程就是建立直接索引的过程,经过哈希处理的数据在查找时候可以通过函数计算后直接定位(哈希表的索引值相当于数组索引直接定位)到该数据。哈希不能做到百分百的唯一,所以需要处理哈希冲突,通常使用链表加关键值匹配。
  27. 减少程序与外存的交互次数可提速程序执行,考虑使用链表一次加载多次使用、内存块分配或者文件映射等方法。
  28. 对大数据大文件的处理,考虑使用多线程均分工作任务的办法从而可降低对处理器的占用率。

分享到:
评论

相关推荐

    C_C++程序设计学习与实验系统 2010 part1

    原名《Turbo C/C++ for Windows 集成实验与学习环境》,现在已支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示、学习...

    C/C++程序设计学习与实验系统 2010.part1

    与软件配套的《 C/C++程序设计教程(配有同步实验、流程控制语句动画演示、提供教程中所有程序实例、实验、作业中的源代码(全部用VC6编译器调试通过))》融入了作者多年的教学和学习经验、编程建议、编程感悟,新增...

    C与C++程序设计学习与实验系统 2011.2

    原名《Turbo C/C++ for Windows 集成实验与学习环境》,现在已支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示、...

    C/C++程序设计学习与实验系统

    原名《Turbo C/C++ for Windows 集成实验与学习环境》,现在已支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示、学习...

    C/C++程序设计学习与实验系统 2010.part2

    与软件配套的《 C/C++程序设计教程(配有同步实验、流程控制语句动画演示、提供教程中所有程序实例、实验、作业中的源代码(全部用VC6编译器调试通过))》融入了作者多年的教学和学习经验、编程建议、编程感悟,新增...

    《C/C++程序设计学习与实验系统》

    原名《Turbo C/C++ for Windows 集成实验与学习环境》,现在已支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示、...

    C/C++程序设计学习与实验系统 2010.part3

    与软件配套的《 C/C++程序设计教程(配有同步实验、流程控制语句动画演示、提供教程中所有程序实例、实验、作业中的源代码(全部用VC6编译器调试通过))》融入了作者多年的教学和学习经验、编程建议、编程感悟,新增...

    C_C++程序设计学习与实验系统

    原名《Turbo C/C++ for Windows 集成实验与学习环境》,现在已支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示、学习...

    C/C++程序设计学习与实验系统 V2011.1

    原名《Turbo C/C++ for Windows 集成实验与学习环境》,现在已支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示、学习...

    C/C 程序设计学习与实验系统 part2

    原名《Turbo C/C++ for Windows 集成实验与学习环境》,现在已支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示、学习...

    c++与c程序设计学习与实验系统(2014)

    原名《Turbo C/C++ for Windows 集成实验与学习环境》,支持32位与64位的WINDOWS 7,它是从事一线教学的大学教师根据多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示、学习与实验...

    C/C++程序员面试指南.杨国祥(带详细书签).pdf

    面试题18:简述C、C++程序编译的内存分配情况 面试题19:以下四段代码中哪段没有错误 第6章 字符串 6.1 数字字符串 面试题1:编码实现数字转化为字符串 面试题2:编码实现字符串转化为数字 6.2 字符串函数 面试题3:...

    c/c++课程设计学生成绩管理系统

    使用注意事项 有着强大的报错功能。 1 全部采用鼠标点击功能,可以看百度网址图片。 2 录用学生信息的细节选项中,如果点击错误信息,再次点击将会取消。 3 附加功能中的高级打印功能中,如果想改变选项,只需要点击...

    C_C++程序设计学习与实验系统 V2008

    原名《Turbo C/C++ for Windows 集成实验与学习环境》,现已更名为《C/C++程序设计学习与实验系统》,现在已全面支持最新操作系统VISTA,它由从事一线教学的大学教师根据 C 语言初学者的特点,量身定制的一个简单...

    高级C/C++编译技术(英文原版)

    本书一方面对基本的理论进行了阐述,另一方面则聚焦于c/c++使用静态库和动态库的一些注意事项,并举例说明如何解决实际的链接与装载问题。此外,本书尽量使用通俗易懂的语言来阐述这些知识,并补充了大量示例,避免...

    C_C++集成实验与学习环境

    原名《Turbo C/C++ for Windows 集成实验与学习环境》,现在已支持最新操作系统WINDOWS 7,它是从事一线教学的大学教师根据多媒体教学演示和C语言初学者的特点,量身打造的一个简单易用的C/C++程序设计教学演示、学习...

    单片机与DSP中的使用C/C++语言编写基于DSP程序的注意事项

    1、 不影响执行速度的情况下,可以使用c或c/c++语言提供的函数库,也可以自己设计函数,这样更易于使用“裁缝师”优化处理,例如:进行绝对值运算,可以调用fabs()或abs()函数,也可以使用if...else...判断语句来...

    C++程序设计课件(清华大学教授 吴文虎教授)

    这是清华大学教授吴文虎的关于C++程序设计的课件,是学习C++的好资料,对于程序员的编程风格以及已经注意的事项,讲的很详细。

Global site tag (gtag.js) - Google Analytics