编程小结

1.先写好各个接口,再编写具体模块,以免影响别人的进度;

2.malloc后把所有的结构体参数初始化,free和申明指针时该置NULL的就置NULL;

3.数组的越界溢出,可以设置数组上下边界的异常检查和处理来防止溢出等未知错误;

4.链表中野指针及错误指针的访问;

5.malloc与free的匹配,以防内存泄漏。注意指针置为NULL;

6.检查变量类型的声明;

7.测试文件的改写始终向库文件兼容,库要向内核兼容;

8,关于宏定义的重命名,数据类型及溢出问题;

9.注意==,=和o,0和大小写;

10.数据处理时注意参数的单位及类型的转换;

11.测试和调试时应当先把程序在自己脑子里理两遍,从数据流和控制流顺一下,以免因一些低级错误、笔误等浪费大量调试时间;

12.发现结对编程也挺有意思,两个人一起编程不光效率高,而且可以互相学习指正,对整个团队的各种好处,不解释;

13.反三角函数转换时分母为0,如180的情况下未做特殊考虑,以及三角函数内参数单位的转换M_PI / 180 。

14.图像处理时原点(0,0)的选取;

15.靠,居然把typedef struct _ARPA_POINT ARPAPiexlPoint;写成了typedef struct __ARPA_POINT ARPAPiexlPoint;,就多了一下滑线,晕死了。

16.宏定义与变量的重名。

17.多线程链表之间的同步异步操作,理解封装函数如插入删除更新动作的用法和缺陷,如不可在同一段时间内操作两次不同的操作。

18.计算数值时注意数值类型一致,如 float = int / long ; 若 int / long 小于 0 则 float 为 0。

19.站在客户使用的角度设计产品的使用习惯与内部处理方式。

20.效率优化技巧:理解CPU和操作系统的处理方式,采用最适合的方式:乘除尽可能使用移位代替;三角函数转换矢量时,若对精度要求不是很高就可采用查表法;使用宏定义限制输出值的上下限;

21.关于 float = int / int 的 BUG ;

22.复制相似功能代码时,将return拷贝,处理函数里误加了return;

23.注意函数的通用性,别图一时省事;

你可能感兴趣的:(多线程,编程,struct,null,float,图像处理)