当打开优化( -O1
或更高)时,如果使用memcpy()
并且源指针与32位边界对齐,则编译器将使用面向字的指令实现memcpy()
作为优化过程的一部分。如果在未对齐的地址上使用memcpy()
则此优化技术会在您的软件中导致意外结果。
解决/修复方法
采取措施确保仅使用对齐的数据指针调用memcpy()
的优化实现。
当打开优化( -O1
或更高)时,如果使用memcpy()
并且源指针与32位边界对齐,则编译器将使用面向字的指令实现memcpy()
作为优化过程的一部分。如果在未对齐的地址上使用memcpy()
则此优化技术会在您的软件中导致意外结果。
采取措施确保仅使用对齐的数据指针调用memcpy()
的优化实现。
没有回复内容