摘要: 在编译时需要加 –g,如果没有-g,你将看不见程序的函数名、变量名,所代替的全是运行时的内存地址。 list 列出源码 break(b) break + 行号 break + 函数名 info break 查看断点信息 run(r) 运行到断点处停止 next(n) 单条语句执行 continue( 阅读全文
posted @ 2018-03-21 11:10 hanhuihanhui 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 首先搞清楚一点,设计模式不是高深技术,不是奇淫技巧。设计模式只是一种设计思想,针对不同的业务场景,用不同的方式去设计代码结构,其最最本质的目的是为了解耦,延伸一点的话,还有为了可扩展性和健壮性,但是这都是建立在解耦的基础之上。 单例是为了保证系统中只有一个实例,其关键点有 一.私有构造函数 二.声明 阅读全文
posted @ 2018-03-21 10:43 hanhuihanhui 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 工厂模式理论我不长篇大论了。其核心功能是根据“需求”生产“产品”,设计模式的核心是解耦。工厂模式就是为了解耦“需求”和“产品”,但是别忘了,工厂模式工厂模式,还有一个重要元素,就是“工厂”,所以工厂模式的核心思想,就是解耦“需求”“工厂”和“产品”。 工厂模式,实际上也会根据业务情景不同会有不同的实 阅读全文
posted @ 2018-03-21 10:18 hanhuihanhui 阅读(224) 评论(0) 推荐(0) 编辑
摘要: Q:CAS的实现 A:gcc提供了两个函数 这两个函数提供原子的比较和交换,如果*ptr == oldval,就将newval写入*ptr, 第一个函数在相等并写入的情况下返回true,这个函数比第二个好在,返回bool值可以知道有没有更新成功. 第二个函数在返回操作之前的值。 第二个函数可以用c语 阅读全文
posted @ 2017-12-10 16:24 hanhuihanhui 阅读(548) 评论(0) 推荐(0) 编辑
摘要: Q: 为什么需要端口 A: 主机接收到数据后,应该把数据传送给哪个进程,所以我们用端口来标识一个程序或者说是进程。当主机接受到数据报后,根据报文首部的目的端口号,把数据发送到相应端口号,然后与端口号相应的那个进程将取走数据。 Q: IP地址和端口的区别 A: IP地址用于标识网络上的一台主机,端口用 阅读全文
posted @ 2017-11-13 17:17 hanhuihanhui 阅读(123) 评论(0) 推荐(0) 编辑
摘要: new和new[],delete和delete[] 内置类型可以混用,没有错误 使用默认析构函数的自定义类型可以混用,没有错误 当使用自定义析构函数的自定义类型时,混用出错 用delete[] 替换delete 时 使指针向高地址偏移4个字节后再调用delete[],运行通过 没有调用析构函数//原 阅读全文
posted @ 2017-11-13 17:12 hanhuihanhui 阅读(123) 评论(0) 推荐(0) 编辑