- 博客(15)
- 收藏
- 关注
原创 c++ speedup
static auto sppedup = []() { ios::sync_with_stdio(false); cin.tie(nummptr); return nullptr; } (); 转载自
2020-03-10 15:18:59
291
原创 vmrc
if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" set fileencodings=ucs-bom,utf-8,latin1 endif set nu set nocompatible " Use Vim defaults (much better!) set bs=indent,eol,start " allow backspacing over ...
2019-03-27 10:13:51
1135
转载 虚函数
转载自虚函数详解 虚函数的作用:实现多态的机制,用夫类型的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数 虚函数是通过一张虚函数表来实现的,表中主要有一个类的虚函数地址表,这张表解决了继承、覆盖的问题 虚函数按照声明顺序放于虚函数表中,父类的虚函数在子类的虚函数前面 每个父类都有一个虚函数表,一个子类继承多个父类的时候,子类的虚函数(无覆盖)放到第一个父类的虚函数表中 安全性 ...
2019-03-23 17:28:23
232
原创 引用和指针的联系和区别
指针的优点 能有有效的表示数据结构 能够动态分配内存,实现内存的自由管理 能够方便的使用字符串 便捷高效的使用数组 指针直接与数据的存储地址有关,速度快 指针和引用的区别 引用是别名,指针是地址 指针运行时可以改变其所指向的值,引用绑定之后就不再改变 程序为指针变量分配内存区域,但是不为引用分配内存区域 符号表上面添加的是指针的地址和引用对象的地址,符号表一旦生成就不能改变,所以指针指向可变...
2019-03-21 16:52:56
371
转载 tcp拥塞控制和流量控制
流量控制 流量控制:让发送方的发送速率不要太快,让接收方来得及接受数据。 利用滑动窗口机制可以在tcp连接上实现对发送方的流量控制。 滑动窗口单位是字节,不是报文段。 连接中存在锁死的状态,为了解决这种状态,tcp为每一个连接设置了持续计时器,只要tcp连接的一方收到对方的零窗口通知,就开始计时,时间到期,就发送一个零窗口探测报文段,对方在确认这个探测报文段时给出了现在的窗口值。 拥塞控制 ...
2019-03-13 11:24:03
285
原创 动态链接库和静态链接库
分类 根据链接时期的不同,分为静态库和动态库 静态库:在程序编译的时候被链接的,之后生成的可执行文件就不再受库的影响,即使将静态库删除。 动态库:在程序执行的时候被链接的,程序运行时依然依赖动态库,所以动态库需要保留在系统上。 区别 静态库会造成系统空间的浪费,并且调试bug的时候比较麻烦 动态库弥补了上述两个缺点 ...
2019-03-12 17:17:48
258
原创 tcp粘包现象
Nagle算法 定义:任意时刻,最多只能有一个未被确认的小段(小于MSS尺寸的数据块) 作用:用于自动连接许多的小缓冲器消息,通过减少必须发送包的个数来增加网络软件系统的效率 优点:减少拥塞控制 可通过TCP_NODELAY选项禁止Nagle算法 粘包 什么是粘包 tcp粘包是指发送方发送的若干包数据到接收方接受时粘成一包,从接收缓冲去看,后一包数据的头紧接着前一包数据的尾。 产生粘包的原因 发...
2019-03-12 16:46:13
307
原创 unix网络编程 chapter1 and chapter2
简介 bzero(&p, size); // 功能等效memset(&p, 0x00, size) inet_pton(AF_INET, input_str, &servaddr.sin_addr); // 地址转换,将点分十进制转换为正确格式,支持ipv6 TCP本身并不提供记录结束标志,如果应用程序需要确定记录的边界,需要自己实现。 ...
2019-01-13 15:10:59
233
转载 c malloc分析
malloc void* malloc(size_t size); 函数功能:在系统中分配一段连续的可用的内存 malloc分配的内存大小至少为size指定的字节数 malloc返回值为指针,指向一段可用内存的起始地址 malloc分配的地址不能重叠,除非free掉相应地址 ...
2018-12-22 10:33:26
625
转载 C 嵌套宏使用
嵌套宏的展开规律 一般展开规律为:先展开参数,再分析函数,由内向外展开 当宏中有#运算符的时候,不展开参数 当宏中有##运算符的时候,先展开函数,再分析参数 ##运算符用于将参数连接到一起,预处理过程把出现在##运算符两侧的参数合并成一个符号,注意不是字符串 ...
2018-12-20 11:01:50
1942
转载 C字节对齐
转载自https://www.cnblogs.com/clover-toeic/p/3853132.html 结构体对齐准则 结构体变量的首地址能够被其最宽基本类型成员的大小所整除 结构体每个成员相对结构体首地址的偏移量都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节 ...
2018-12-10 22:18:00
262
原创 C++ Primer Plus chapter 3
1.简单变量 1.1 变量名 C++对于变量名的长度没有限制 C只保证名称中的前63个字符有意义,即变量名最长为63 1.2 初始化 如果不对定义的变量进行初始化,该变量的值是不确定的,为创建之前,相应内存单元保存的值 C++11初始化方式 使用大括号初始化器,等号可有可无,大括号内为空表示置零 int hamburgers = {24}; // set hamburgers to...
2018-12-03 23:00:13
209
原创 C++ Primer Plus chapter 2
第二章 1.main函数 int main(void) 在括号中使用void明确地指出,函数不接受任何参数 C++中,空括号和使用void等效 C中,空括号意味着对是否接受参数保持沉默 2.注释 C++标准使用//作为注释符号 C标准使用/* */作为注释符号 3.名称空间 大型项目中可使用如下方式来使用名称空间中的方法 using std::cout; // make c...
2018-11-22 22:37:03
260
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1