1.DC 用完记得ReleaseDC,不然就等着内存被泄露关吧。这个特别容易忘记。
2.Bitmap用完要unloadBitmap,否则bmBit指针指向的空间无法释放,你把bitmap给删了都没用。
3.数组char *arr = new char[12]; 释放应该delete[] arr; 如果只写delete arr,那只会释放数组第一个元素。
4.良好的习惯是使用指针前都要先判断是否为空,不为空先free或者delete后再用,避免操作失误导致的内存泄露,当然初始化时候得先把指针付空。
5.new/delete , malloc/free ,不能混用,否则有可能释放不干净。
6.c语言是不能直接访问c++的成员变量的,这个很纠结,经常在这蛋疼,特别是c写的底层库,而上层库用c++注册的回调,这样回调函数访问不到c++的成员变量。
7.用thread_mutex_lock和unlock做临界代码时候,一定记得每个出口return地方都要unlock,不然就死锁了。当然信号量原则一样。
8.编程中切记临界值的处理,另可多写一个case或者一个if,也不要随便包含给>或<去了,最后最难改的bug就是临界值的地方。
9.char* 可以转换成 const char*,反之不可,所以你的函数接口设计不改变参数的尽量加const,否则和系统底层函数相互调用的时候就很纠结。
10.出现段错误一般是缓冲区溢出,数组越界,检查下memset用的地方是否正确。
11.结构体初始化完记得memset,否则后面有很多不可估计的错误,很难找原因。
12.float型千万别用==判断相等,只能用<和>控制在一个精度范围内,这个虽然大家都知道,但用的时候一不小心就写==了。要不就干脆转换成int型比较。
13.除数一定要判断下是否会为0,这也经常忘,不管逻辑上会不会为0。
14.数组下标用的时候也要判断是否越界,否则后期很难控制的出错。