内存对齐还是需要重视的——XMMATRIX 为例

和自甴很熟 提交于 2019-12-09 19:36:41

最近研究 D3D,搜了一个教材跟着学:http://www.rastertek.com/dx11s2tut04.html

用 x64 的配置运行,完美,过了几天需要用 x86 测试,结果一运行,程序崩溃……

赶紧排查问题,x64 的 Debug、Release 都是可以的,而 x86 则是 Debug 可以,Release 才会崩。

开发环境是 VS2015,编译时曾经遇到一些错误和警告,是 UMU 自己消灭掉了,最后有一类警告应该是关键:

warning C4316: 'SystemClass': object allocated on the heap may not be aligned 16

原因是 XMMATRIX 需要 16 字节对齐,但代码的作者把它塞在几个类里,然后去 new 这些类了……

尝试把这些类从 heap 改为 stack,问题解决!

八哥太多,不能轻易放任警告!

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!