内存对齐还是需要重视的——XMMATRIX 为例
最近研究 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,问题解决! 八哥太多,不能轻易放任警告! 来源: oschina 链接: https://my.oschina.net/u/725292/blog/1553339