zoukankan      html  css  js  c++  java
  • 编程语法优美

    C语言提供接口不允许使用结构体
    因为使用结构体,可以导致结构体中的部分数据没有初始化,给函数内部处理造成困难,无法辨别是否是有效参数
    C语言内存分配约定
    内存谁申请,谁释放,不允许跨函数释放,需要跨函数并且有先后问题的,那么需要拷贝一份内存
    因为申请的如果不释放,而该释放的在释放之前就报错了,就会导致内存泄漏
    C语言接口参数规则
    在定义函数时,重要的(必须的)参数放在前面,不重要(可以为NULL的那种)的参数摆在后面,输入参数在前,输出参数在后
    C语言业务原则
    方法与数据分离策略,有利于代码维护和模块解耦
    C语言动态库开发策略
    
    通用动态库必备条件
    1.只有方法(即不需要缓存数据或者状态)
    2.形参简单(入参或者出参复杂不适合集成动态库)
    
    专属动态库[模块]设计原则
    1.数据与方法紧密结合(存在多线程问题,但是一般不考虑,交由上层控制)
    专属动态库优点:
    1.简化业务逻辑
    2.因为专属动态库与服务紧密结合,提高了服务器性能(通用动态库加锁保护,服务器又加锁保护,双重锁导致性能低下)
    专属动态库缺点:
    动态库不拥有通用性,使用比较麻烦,必须考虑多线程问题
    
    程序解耦流程
    主程序-->专属模块-->通用动态库
    C++语言设计规则
    std::unique_ptr使用场景
    std::unique_ptr只应该用在有复杂数据结构释放内存的场景,目的减少遍历,提高性能
    单独的对象暂且不使用std::unique_ptr,防止std::unique_ptr内部构造有过多的负担
    C语言接口参数规则
    如果返回的数据复杂(数组),必须使用回调函数
  • 相关阅读:
    17-电话号码字母的组合
    16-最接近的三数之和
    牛客网上的java面经,JVM
    15-三数之和
    mybatis 懒加载不生效
    @ControllerAdvice
    异常
    @ExceptionHandler处理异常
    spring aop annotation
    return 与 system.exit(0) 区别
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/11870552.html
Copyright © 2011-2022 走看看