zoukankan      html  css  js  c++  java
  • 工作经验总结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)。在函数调用过程中,会把局部变量和参数入栈,如果局部数组过大,会导致栈溢出。
  • 相关阅读:
    nodejs简易代理服务器
    request发送json-rpc请求
    nodejs使用sequelize操作mysql实例
    nodejs添加jsonwebtoken验证
    .net core下使用DbProviderFactories.GetFactory("")无法创建工厂的解决方案
    .net core 后台如何生成html字符串到前台_后台html字符串在前台显示编码状态
    .net core入门-跨域访问配置
    .net core入门-项目启动时报错:HTTP Error 502.5
    .net core项目启动时报_未处理Socket异常(以一种访问权限不允许的方式做了一个访问套接字的尝试。)
    winform批量更新数据_长时间的执行会导致界面卡死
  • 原文地址:https://www.cnblogs.com/zxtp/p/5626712.html
Copyright © 2011-2022 走看看