ToB企服应用市场:ToB评测及商务社交产业平台

标题: C++布局体内幕揭秘:sizeof之谜与内存布局探秘 [打印本页]

作者: 天空闲话    时间: 2024-5-15 02:32
标题: C++布局体内幕揭秘:sizeof之谜与内存布局探秘
 
概述:C++布局体的`sizeof`不总是即是每个成员的`sizeof`之和,因为对齐和填充影响了内存布局。未对齐的布局体可能存在间隙,而对齐的布局领会插入填充以保持对齐。通过示例展示告终构体的内存对齐和填充,以及如何利用模板元编程打印布局体成员的偏移量,深入明白内存布局。
在C++中,布局体的sizeof并不总是即是每个成员的sizeof之和,这是由于对齐和填充的影响。编译器为了提高内存访问速度,通常会在布局体成员之间插入一些填充字节以对齐数据。
底子功能:

示例源代码:

[code]#include // 未举行对齐的布局体struct WithoutPadding {    char a;    // 1 字节    int b;     // 4 字节    char c;    // 1 字节};// 举行对齐的布局体struct WithPadding {    char a;    // 1 字节    char padding[3];  // 对齐填充 3 字节    int b;     // 4 字节    char c;    // 1 字节};int main() {    std::cout




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4