C++编程
海风鸥
这个作者很懒,什么都没留下…
展开
-
程序的内存分布学习
内存结构说明: 一个程序运行时需要占用内存空间来存储数据和代码,可以使用的内存从逻辑上可以为五个部分,按照地址从高到低依次是: 栈(stack)、堆(heap)、数据段(data segment)、只读数据段(static area)和代码段(code segment)。 栈:用来存储局部、临时变量,以及函数调用时保存现场和恢复现场需要用到的数据,这部分内存在代码块开始执行时自动分配,代码块...原创 2019-10-25 11:47:38 · 174 阅读 · 0 评论 -
UML中常见关系理解
工作也有好几年了,但在开发过程中很少去画UML相关的图,有可能跟自己开发的都是小团队有关。最近自己想多接触点与软件设计相关的东西。感觉自己缺少了方向,不知道该往哪个方向去学。还是一步一步慢慢 积累吧! 有点扯远了,最近简单看了下UML常见关系,简单理解如下: 泛化:类与类之间关系 是 is - a,类间的继承关系。 实现 :类与类之间关系 是 is - a,类间的接口实现关系。 ...原创 2019-05-27 11:38:26 · 251 阅读 · 0 评论 -
设计模式 - 职责链模式
职责链模式(Chain of Responsibility):使用多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象连成一个链,并沿着链传递请求,直到有一个对象处理它为止。 职责链模式最常见是在办公OA的请假流程中较为典型。接下来简单看下请假申请流程职责链模式的结构图: 代码结构如下: respond.h #pragma once #include ...原创 2019-07-29 16:57:36 · 147 阅读 · 0 评论 -
POINTER_64、POINTER_32定义成员及内存对齐理解
先看下下面这个结构体的定义: C++下面的定义: //#pragma pack(4) typedef struct _KERNEL_DATA // 按8个字节对齐的话 { unsigned long PortNumber; // 占4个字节 union { unsigned long LongData; unsigned short ShortData; unsigne...原创 2019-10-11 10:06:27 · 634 阅读 · 0 评论