zoukankan      html  css  js  c++  java
  • C语言培训02

      苦逼的培训第二天了,苦逼的日子还在继续,C语言啊,不会害怕的,继续加油!

      今天上午还是培训的是低级错误案例,主要的内容是做练习题,然后是每个小组讨论题目,题目都是一些基本的案例,也是公司实际产品中出现的错误,有些错误是很低级,但是谁也不敢保证这些错误不发生在自己身上,主要的错误归纳为一下几点:

    1:字符串拷贝时忘了拷贝‘\0’结束符
    2:申请内存时要判断指针是否申请成功,校验指针有效性。
    3:内存用完以后一定要释放,而且把指针设置为空
    4:还有一些设计结构体大小的问题,特别是结构体对齐方式。结构体对齐字节大小是取 
          min(机器默认字节,结构体中最大字节)。还应该注意的是short型对齐是从偶数位开
        始    的,char可以从任意位置开始等
    5:宏定义的一些使用方法,宏中多条语句连接符是\,例如宏定义如下
        #define FUNC(A) A++\A=A*10
        int A=10;
        if(A>10)
            FUNC(A);
        执行以后的:A=100;了
    6:还有就是大小端的转换
    7:不要忘记取地址符 &

      今天上午还拖堂好久才完成了低级案例分析这个课程,我们那位尊敬的老师也要回去了。下午的课程是关于代码性能和维护性。主要讲了几下几点:

      1:为什么要代码性能的优化?

    1:双重循环,小循环在外面,大循环在里面(原因是要看反汇编的代码)
    2:循环体内工作量最小
    3:重复使用的变量应该缓存起来,避免无所谓的计算
    4:避免不必要的内存拷贝
    5:较大的结构体作为函数入参时,应该使用结构体指针传递,避免所谓的数据泥团
    6:判断语句 把最有可能的放在前面,高概率在前
    7:在需要的时候才申请和释放内存
    8:日志必须按合适的级别分级打印,
    9:操作文件时使用缓存机制

      2:性能优化的方法论

    1:以空间换取时间,现在存储成本很低了,牺牲空间换时间是值得的
    2:使用模板复制
    3:减少压栈成本,特别是函数调用,每次函数调用都是压栈处理。函数参数尽量越少越
         好,避免使用递归函数    
    4:改变判断顺序,就是高概率事件放在前面
    5:应用层软件遍历查找
    6:不建议使用静态函数或变量(影响以后系统打补丁)
  • 相关阅读:
    数据不须要自由,但须要做爱
    编程算法基础-3.2自底向上风格
    Linux管道符
    阿里云 oss python3 样例
    6. Laravel5学习笔记:IOC/DI的理解
    LNMP环境搭建——MySQL篇
    在奋斗的日子里,傻笑出来(三)
    捕获海康威视IPCamera图像,转成OpenCV能够处理的图像(一)
    vs 默认的INC和LIB
    一款DIY移动电源的性能
  • 原文地址:https://www.cnblogs.com/lemonloves/p/2937700.html
Copyright © 2011-2022 走看看