工做经验总结201606

一、在多线程编程中,任什么时候候主线程都应该等待子线程结束。
二、注意从链表中取出节点后,须要将取出来的节点的next指针置为NULL
三、clock()函数计算的是该程序从启动到函数调用占用CPU的时间。若是是多线程,则会是多个线程占用CPU的总时间。单位是时钟单位(滴答数)。CLOCKS_PER_SEC表示的是一秒钟有多少个时钟单位。
四、使用hash_map时,若是关键字是char*型的,注意传进去的变量是必须是全局的或者是使用堆中申请的空间。不然会出现一些意想不到的错误。
五、C语言中可使用函数指针实现不进行判断来调用不一样函数。只须要给函数指针赋不一样的值便可。
六、直接定义数组时,数组中的元素不能过多,不然会出现段错误。直接定义的数组是存放在栈中。
七、在C语言中,函数指针是实现多态的手段。应该善用函数指针。善用回调函数。
八、在实现回调函数是,最好预留一个变量用于传入上下文。
九、使用全局变量时必须先进行初始化。
十、在编程中,若是须要隔离变化能够多考虑使用函数指针和接口共同实现。
十一、在结构体中使用相似char data[0]的方式建立元素能够减小内存使用。由于data[0]没有元素,不占用内存空间。
十二、若是程序运行时有内存越界而调试时有内存越界,则多是缓存区过小或者死锁。
1三、在使用缓存区以前必须考虑是否须要清空缓存。
1四、在任什么时候候都必须考虑内存越界问题。不能感受不会越界就不进行处理
1五、尽可能不要依靠编译器来检查程序的语法错误。在程序编写完了,第一件事情不是编译,而是检查至少3遍。第一遍检关注语法错误、代码排版和命名规则等问题,第二遍关注常见编程问题,如内存泄漏和越界,变量是否初始化,函数忘记返回值等,第三遍关注逻辑问题。检查逻辑是否有问题。
1六、尽可能不要使用全局变量
1七、避免常见错误:内存泄漏、内存越界、野指针、访问空指针、引用未初始化变量、结构大小变化引发的错误、分配/释放不配对、返回指向临时变量的指针、重命名符号、栈溢出、忘记返回值、多线程共享变量没有用valotitle修饰。
1八、在向hash_map中插入数据时,不要使用数据赋值的形式,除非不须要处理插入失败的状况。
1九、对于构造函数对某些变量初始化失败的状况,应该以抛出异常的形式来进行处理。
20、栈空间是很小的,不要试图为定义超大局部数组(大于2M)。在函数调用过程当中,会把局部变量和参数入栈,若是局部数组过大,会致使栈溢出。
相关文章
相关标签/搜索