编程语法优美

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语言接口参数规则
如果返回的数据复杂(数组),必须使用回调函数
原文地址:https://www.cnblogs.com/zhanggaofeng/p/11870552.html