04 2020 档案
基础数据类型值传递、指针传递的取舍
摘要:传递基础数据类型的时候, 最重要的一点是看占用空间大小,如果是32位系统, 想要传递int, char, short这种类型的话使用值传递比较好,因为这些类型的占用空间 <= 指针占用空间(4字节),如果是long long类型的话则使用指针较好,因为long long的占用空间为8字节, > 指针
C++内存对齐【转载】
摘要:首先,什么是内存对齐? 如果你不了解内存对齐,你应该会认为数据在内存上是一个接一个连续存储的,然而实际情况并非如此,数据是按照一定的规则在内存中摆放的,这个规则就是内存对齐的规则。为什么要内存对齐呢,这是因为各个硬件平台对存储空间的处理上有很大不同,一些平台对某些特定类型的数据只能从某些特定地址开始
static_cast、dynamic_cast、reinterpret_cast、const_cast以及C强制类型转换的区别【转载】
摘要:static_cast 1. 基础类型之间互转。如:float转成int、int转成unsigned int等 2. 指针与void*之间互转。如:float*转成void*、CBase*转成void*、函数指针转成void*、void*转成CBase*等 3. 派生类指针【引用】转成基类指针【引用
RAII机制
摘要:#pragma once #include <Windows.h> class raii { private: CRITICAL_SECTION* _crit; public: raii(CRITICAL_SECTION* crit) { _crit = crit; EnterCriticalSec
C++ 模板问题备注
摘要:【模板类头文件重复】: #pragma once能解决模板类头文件重复包含问题【模板不定参的使用】: template <class... Args> void test(Args... args); 传递不定参:(std::forward<Args>(args)...)
C++ IOCP问题备注
摘要:【1236错误】情况如下: 1.client连接server 2.client发送消息到server 3.client使用closesocket(sock); 4.server接收到关闭socket消息 (lpNumberOfBytesTransferred为0, 注意:如果客户端发送的是空消息同样