struct结构会增加程序的开销
来源:互联网 发布:黑色星期五禁曲 知乎 编辑:程序博客网 时间:2024/04/30 14:11
struct结构一方面能够加强对变量的管理,增加程序的可读性,但是另一方面,结构体也会加大程序的开销。
看下面一段代码:
struct TEST_S{int a;int b;float c;};int _tmain(int argc, _TCHAR* argv[]){TEST_S ts;int a;int b;int c;ts.a = 100;ts.b = 200;ts.c = 300.f;a = 100;b = 200;c = 300.f;return 0;}使用反汇编工具,
<strong><span style="font-size:18px;"></span></strong><pre name="code" class="cpp">ts.a = 100;ts.b = 200;ts.c = 300.f;
给结构体3个变量赋值,实际上在Debug下汇编代码为:
mov dword ptr [ts],64h mov dword ptr [ebp-0Ch],0C8h movss xmm0,dword ptr ds:[0BA5858h] movss dword ptr [ebp-8],xmm0从汇编代码中可以看出,除了结构体的第一个变量外,接下来的变量就需要在结构体的头地址的基础上加上偏移量,而非结构体的情况如下:
a = 100;b = 200;c = 300.f;其汇编代码如下:
mov dword ptr [a],64h mov dword ptr [b],0C8h mov dword ptr [c],12Ch明显少了一步地址减法。
但是在Release情况下,编译器默认对程序进行优化,由于优化下的汇编代码无法查看,所以无法查清其实际开销情况。
1 0
- struct结构会增加程序的开销
- 为什么增大HashMap容器类里的加载因子 会增加查询数据的时间开销
- 详解C++程序中定义struct结构体的方法
- 详解C++程序中定义struct结构体的方法
- QueryPerformanceCounter 程序运行时间的开销探讨
- struct结构的大小
- 结构(struct)的用法
- struct的内存结构
- mysql 表字段避免null 会带来额外的开销
- struct结构大小的问题
- struct 结构体的创建
- struct 结构体的大小
- 结构体struct的sizeof
- go struct结构的实例
- struct结构指针的初始化
- C#的Struct结构体
- struct结构的内存对齐
- struct结构体的大小
- USACO 1.2 Problem 1
- Unity之Handles绘制球体控制柄-十五
- 如何将PSD模型转化成XHTML和CSS文件
- 【记录】PWM-HBridge
- Spring3 MVC 深入研究
- struct结构会增加程序的开销
- 86Service中显示Intent跳转到Activity中跳转不了的BUG的解决
- 转载)相对路径读文件
- Unity之Handles之Slider-十六
- 【Cocos2d-x自学之旅二】环境搭配+HelloWorld项目实现
- 量到质的变化
- 【记录】螺栓连接——预紧力
- 1412261858-蓝桥杯-基础练习 特殊的数字
- Cracking the coding interview汇总目录