C++成员函数指针大小
今天被成员函数指针害了!
平时我们当一个类的成员中有一个其他类型的成员指针时,为了减少头文件依赖,经常使用声明方式
class Session;
而不是用
#include “Session.h”
而,如果不小心你用了Session的函数成员指针,如
void (Session::*handler)(Packet& recvPacket);
不幸的是,在运行时,和编译时的,sizeof将不一致,从我目前来看,编译时占用了16个字节,而,作为指针在 32位机器下应该为4个字节,而导致很多莫名其妙的问题
特此,留念
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步