坚持还是平庸
1. main 函数 执行前 和执行后会执行什么?
【答】main 函数执行之前,主要是初始化系统相关的资源以及函数的初始化工作
- 设置栈指针
- 初始化static 静态和global 全局变量,即data段的内容
- 将还没有初始化的全局变量进行赋值,eg:数值型 short int long 等为0,bool 为false 指针为null,等等,即 bss段
- 运行全局构造器,进行 C++ 中的函数构造
- 将main 函数的参数,argc,argv 等传递给main函数,才能 真正运行
main 函数执行之后,会运行 全局对象的析构函数
可以用_oneexit 注册一个 函数,它会在main 之后 执行
如果你需要加入一段在main退出后执行的代码,可以使用atexit()函数,注册一个函数。
2. 网络粘包问题
参考 :https://blog.youkuaiyun.com/zhangxinrun/article/details/6721495
2.1 长连接 和 短连接
【答】
- 长连接
client 与 server 建立连接后不断开 ,然后再进行 报文发送和 报文接受 - 短连接
client 与 server 每一次进行报文通讯时才进行连接建立,交