<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-fareast-font-family:宋体; mso-font-kerning:1.0pt;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} -->
C 语言编程经验总结
C 语言因为语法灵活,程序设计自由度大,生成目标代码执行效率高,可移植性好等优点多年来一直位居编程语言榜首;但要掌握好这个编程工具需要不断学习实践,总结交流;以下是我 C 编程一些经验总结:
一.如何学好 C 语言:
1. 完全掌握 C 语言基础:如
标识符命名规则,常量的定义,关系运算,逻辑运算、指针用法,文件操作等。 2. 会用一些常用的算法和数据结构:
如常用的队列,栈,单向链表,双向链表等数据结构;排序算法查找算法等;
3 .清楚 C 语言的内存管理机制:
很多严重的 bug 大多是对内存的错误操作引起的。对这块就需要深入了解
如堆栈的区别;局部变量,全局变量,静态变量的初始化方式不同;变量的生命周期、作用域的区别;什么是内存对齐等。
4. 多看一些好的编程书籍和 source code , 多实践,多向别人请教学习;拓宽自己的知识面。因为在程序设计中往往会涉及许多新的东西,如果自己在这方面欠缺,就需要及时去查资料学习,向更专业的人请教;如编程文字处理,就需要知道宽字符窄字符区别,什么是 Unicdoe 编码, GB 编码, BIG5 编码;阿拉伯文排版和中文排版方式不同;多媒体区里中各种音档图像文件格式的区别等。
二. C 语言编程需要考虑的问题:
1. 程序的鲁棒性;
就是程序运行稳定可靠,换言之减少程序中的 bug, ;各种编程规范就是要确保在编码阶段少出问题;
2. 程序的可维护性;
这个问题非常重要的,因为一个程序从编码到完成也许只需要 1 个月或 1 周时间,但可能今后几年十几年一直在使用就一直处于维护期;这这期间还会有人员变动,要求程序在一开始编码是就要考虑程序的可维护性。 少些一些难以理解的代码,多加些注释。
3 .程序的移植性兼容性设计;
在开始编码时如果考虑到移植性兼容性设计,在以后的移植或功能扩展上会省很多事,否则,会事倍而功半。
4. 程序的执行效率;
三. C 语言嵌入式编程特点;
1 . CPU 性能低,对程序的执行效率要求高;
2. RAM 受限,在内存的使用上需要多考虑如何提高使用效率;
3. 通常用专用的编译器,需要一些特别注意的方面;如 ARM 编译器内存安 4 字节对齐,在定义结构变量时要注意了。
4. 程序调试有时需要专业的调试工具;
四.常用编程技巧:
五.常用的调试方法;
1. 静态走查;
2 上机单步跟踪;
3. 设置条件断点;
4. 分段排除;
5 .假设条件测试;