工作经验总结201606

1、在多线程编程中,任何时候主线程都应该等待子线程结束。
2、注意从链表中取出节点后,需要将取出来的节点的next指针置为NULL
3、clock()函数计算的是该程序从启动到函数调用占用CPU的时间。如果是多线程,则会是多个线程占用CPU的总时间。单位是时钟单位(滴答数)。CLOCKS_PER_SEC表示的是一秒钟有多少个时钟单位。
4、使用hash_map时,如果关键字是char*型的,注意传进去的变量是必须是全局的或者是使用堆中申请的空间。否则会出现一些意想不到的错误。
5、C语言中可以使用函数指针实现不进行判断来调用不同函数。只需要给函数指针赋不同的值即可。
6、直接定义数组时,数组中的元素不能过多,否则会出现段错误。直接定义的数组是存放在栈中。
7、在C语言中,函数指针是实现多态的手段。应该善用函数指针。善用回调函数。
8、在实现回调函数是,最好预留一个变量用于传入上下文。
9、使用全局变量时必须先进行初始化。
10、在编程中,如果需要隔离变化可以多考虑使用函数指针和接口共同实现。
11、在结构体中使用类似char data[0]的方式创建元素可以减少内存使用。因为data[0]没有元素,不占用内存空间。
12、如果程序运行时有内存越界而调试时有内存越界,则可能是缓存区太小或者死锁。
13、在使用缓存区之前必须考虑是否需要清空缓存。
14、在任何时候都必须考虑内存越界问题。不能感觉不会越界就不进行处理
15、尽量不要依靠编译器来检查程序的语法错误。在程序编写完了,第一件事情不是编译,而是检查至少3遍。第一遍检关注语法错误、代码排版和命名规则等问题,第二遍关注常见编程问题,如内存泄漏和越界,变量是否初始化,函数忘记返回值等,第三遍关注逻辑问题。检查逻辑是否有问题。
16、尽量不要使用全局变量
17、避免常见错误:内存泄漏、内存越界、野指针、访问空指针、引用未初始化变量、结构大小变化引起的错误、分配/释放不配对、返回指向临时变量的指针、重命名符号、栈溢出、忘记返回值、多线程共享变量没有用valotitle修饰。
18、在向hash_map中插入数据时,不要使用数据赋值的形式,除非不需要处理插入失败的情况。
19、对于构造函数对某些变量初始化失败的情况,应该以抛出异常的形式来进行处理。
20、栈空间是很小的,不要试图为定义超大局部数组(大于2M)。在函数调用过程中,会把局部变量和参数入栈,如果局部数组过大,会导致栈溢出。
posted @ 2016-06-29 14:27  zxtp  阅读(154)  评论(0编辑  收藏  举报