news 2026/7/9 4:41:01

windows查看内存布局

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
windows查看内存布局
cl ConsoleApplication3.cpp /d1 reportSingleClassLayout[classname] /d1 reportAllClassLayout 可以查看源文件中所有类及结构体的内存布局 classname为类名,/d1 reportSingleClassLayout[classname]中间没有空格 加上#include<iostream> 会有很多额外的输出,在测试时可以注释掉
struct S { char x; int y; double z; }; class TestClass { private: char y; double z; int x; }; class Base { private: int x; public: virtual ~Base(); virtual void f1(); virtual int g1(); }; class Derived : public Base { private: char y; public: virtual float f2(); }; class Derived2 : public Base { private: double z; public: virtual void f1(); virtual float v2(); int f3(); }; class Base2 { private: int yy; public: virtual void g2(); }; class Derived3 : public Base, public Base2 { private: double zz; public: virtual void g3(); }; // cl ConsoleApplication3.cpp /d1 reportSingleClassLayoutS // cl ConsoleApplication3.cpp /d1 reportSingleClassLayoutTestClass // cl ConsoleApplication3.cpp /d1 reportSingleClassLayoutBase // cl ConsoleApplication3.cpp /d1 reportSingleClassLayoutDerived // cl ConsoleApplication3.cpp /d1 reportSingleClassLayoutDerived2 // cl ConsoleApplication3.cpp /d1 reportSingleClassLayoutDerived3
class Test { public: Test(); ~Test(); virtual void fun(); }; struct st1 { short number; float grade; float grade2; float grade3; char level; }; struct st2 { char level; short number; float grade; float grade2; float grade3; }; #pragma pack(1) struct st3 { char level; short number; float grade; float grade2; float grade3; }; #pragma pack() void TestSizeOf() { cout << __FUNCTION__ << endl; cout << "sizeof(short)= " << sizeof(short) << endl; cout << "sizeof(st1)= " << sizeof(st1) << endl; cout << "offsetof(st1, number) " << offsetof(st1, number) << endl; cout << "offsetof(st1, grade) " << offsetof(st1, grade) << endl; cout << "offsetof(st1, grade2) " << offsetof(st1, grade2) << endl; cout << "offsetof(st1, grade3) " << offsetof(st1, grade3) << endl; cout << "offsetof(st1, level) " << offsetof(st1, level) << endl; cout << "sizeof(st2)= " << sizeof(st2) << endl; cout << "offsetof(st2, level) " << offsetof(st2, level) << endl; cout << "offsetof(st2, number) " << offsetof(st2, number) << endl; cout << "offsetof(st2, grade) " << offsetof(st2, grade) << endl; cout << "offsetof(st2, grade2) " << offsetof(st2, grade2) << endl; cout << "offsetof(st2, grade3) " << offsetof(st2, grade3) << endl; cout << "sizeof(st3)= " << sizeof(st3) << endl; cout << "offsetof(st3, level) " << offsetof(st3, level) << endl; cout << "offsetof(st3, number) " << offsetof(st3, number) << endl; cout << "offsetof(st3, grade) " << offsetof(st3, grade) << endl; cout << "offsetof(st3, grade2) " << offsetof(st3, grade2) << endl; cout << "offsetof(st3, grade3) " << offsetof(st3, grade3) << endl; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/9 4:37:39

百度开发岗面试题目

如果你准备投 百度 的开发岗&#xff0c;最容易踩的坑通常不是不会刷题&#xff0c;而是准备方向不对。 有些公司看起来都在招开发&#xff0c;但真正进面后会发现&#xff0c;关注点完全不一样&#xff1a; 有的公司更看重高并发和分布式 有的公司更看重 C、系统基础和性能优…

作者头像 李华
网站建设 2026/7/9 4:34:35

SEGGER RTT 移植实战:STM32F4 替换串口 printf,实测传输速率 2 MB/s

SEGGER RTT 移植实战&#xff1a;STM32F4 替换串口 printf&#xff0c;实测传输速率 2 MB/s在嵌入式开发中&#xff0c;调试信息的输出是定位问题的关键手段。传统UART串口输出虽然简单易用&#xff0c;但其传输速率有限&#xff0c;且会占用宝贵的硬件资源。本文将详细介绍如何…

作者头像 李华
网站建设 2026/7/9 4:34:05

C语言数据类型,看这一篇就够了(小白友好)

学C语言&#xff0c;数据类型就像盖房子的砖头——先搞懂砖头&#xff0c;才能砌墙。 一、为什么要有数据类型&#xff1f; 计算机内存里存的都是0和1&#xff0c;但同样一串二进制&#xff0c;可能表示数字、字母、图片…… 数据类型就是告诉编译器&#xff1a;“这块内存里…

作者头像 李华
网站建设 2026/7/9 4:31:53

2026最新:适合内容创作者的5款免费实用B站UP主视频总结工具

先说明白核心判断 2026年第一季度&#xff0c;针对五款热门免费B站UP主视频总结工具做了当前版本试用&#xff0c;没有全场景通用的最优解&#xff0c;但各工具都有明确适配的场景。普通内容创作者处理日常素材&#xff0c;五款工具的免费额度基本够用&#xff0c;不需要上来就…

作者头像 李华
网站建设 2026/7/9 4:31:46

鸿蒙物理 108 篇 第七十九篇 时空流速差异化定则

79. 时空流速差异化定则一、核心总纲六维时空内部一气动静、疏密、冷热、曲率各不相同&#xff0c;单位时序刻度长短产生差值&#xff0c;形成时空流速差异化定则。流速快慢由气场基础属性决定&#xff0c;是区分高低维度、天地三才、微观宏观时空的核心标识。二、流速快慢定性…

作者头像 李华