C++基础知识
本专栏主要收录以及整理自己在学习C++过程中的一些知识,作为自己成长的一个见证
苦行僧-RunnerCai
许多年过去了,人们说成年旧事可以被埋葬,然而我终于明白这是错的,因为往事会自行爬上来,回首前尘,我意识到过去的这么多年里,自己始终在窥视着那荒芜的小径------《Runner》
展开
-
TCP切片和PSH理解
首先说一下IP切片:链路层最大MTU(最大传输单元)一般为1500,不包含链路层14字节的头,所以jIP网络层传输给链路层的IP包最大不能超过1500,但是如果超过1500怎么办?其实这种情况不会发生,当IP层收到数据准备发送到链路层时,一定会检测IP包的大小是否超过了当前主机的MTU,如果超过了就会分片,我们知道,MTU时可以设置的,如果下一个路由的MTU比上一个的小怎么办?很简单,路由会在IP层再进行分片?但这个前提是IP设置了允许分片,如果IP不允许分片,那么这个包就会被丢弃,所以有人手贱,改大原创 2022-02-12 22:48:48 · 1808 阅读 · 0 评论 -
C++初始化列表
定义使用初始化列表的原因必须使用初始化列表的时候成员变量的顺序链接添加链接描述这里对列表初始化做个总结:类中的成员变量只是一个声明,真正的定义在列表初始化,即使你不写列表初始化,默认有一个列表初始化。如果你不使用列表初始化,在构造函数内部对成员变量进行赋值,那么其实就是构造函数,然后使用赋值运算。具体我们来看下面的这个例子:class Test1 {public: Test1() // 无参构造函数 { std::cout << "Construct Test原创 2021-12-15 20:18:20 · 657 阅读 · 0 评论 -
C++类大小计算
看了很多,这篇最好:https://www.cnblogs.com/BEN-LK/p/10720337.html原创 2021-12-15 10:42:07 · 654 阅读 · 0 评论 -
网络编程-TCP/IP如何保证长连接安全
学习此文,先看雄文:http://c.biancheng.net/socket/1(1天玩转socket通信技术(非常详细))TCP/IP如何保证长连接安全?Socket 通信中如何处理 1 个服务器和 1 个客户端有多个长连接?有两种方式第一种是应用层自己发送心跳包。第二种是TCP的keepAlive保活机制。先来说说TCP的握手协议:这是TCP三次握手的完整建立过程,第一个报文从发起方发起SYN,第二个报文SYN ACK是从被连结方发起,第三个报文ACK确认对方的SYN,第三个从ACK确原创 2021-12-05 15:12:06 · 1284 阅读 · 0 评论 -
C语言编译过程
主要有四个阶段:预处理, 展开头文件/宏替换/去掉注释/条件编译 (test.i main .i)编译, 检查语法,生成汇编 ( test.s main .s)汇编, 汇编代码转换机器码 (test.o main.o)链接原创 2021-12-03 19:55:21 · 544 阅读 · 0 评论 -
C语言内存布局
1、栈区(stack)由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式先进后出类似于数据结构中的栈;2、堆区(heap)一般由程序员分配释放, 若程序员不释放,程序结束时可能由系统回收,但在程序运行期间可能造成内存的泄露(比如循环new出来的对象却总是没有被delete掉);3、全局变量区(也称静态存储区static)全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域,程序结束后有系统释放;*原创 2021-12-03 19:53:10 · 751 阅读 · 0 评论 -
template<typename MAP, typename LIST, typename First, typename ...KeyTypes>不定参递归调用-泛华之美
在说明我们这一章节想要讲什么,我们先来看一个例子:(例子来源于zlmediakit中的MediaSource.cpp) using Ptr = std::shared_ptr<MediaSource>; using StreamMap = unordered_map<string/*strema_id*/, weak_ptr<MediaSource> >; using AppStreamMap = unordered_map<strin原创 2021-12-03 10:03:10 · 164 阅读 · 0 评论