【发布时间】:2013-11-22 12:00:57
【问题描述】:
我有一个在 debug build 中运行良好的程序,但是当我在 release build 中运行相同的程序时,我的程序在下面几行崩溃
char* iter=ptr; //ptr is already initialized
char* iter = (char*) ALIGN (iter); // crashes here
我有一个如下所示的 ALIGN 预处理器定义
指针类型转换为 long。
#define SIZE 8L
#define ALIGN(ptr) \
(((__int64)ptr & (~(SIZE - 1L))) + SIZE) \
: (__int64)ptr)
当我在 Windows 8 中的 Visual Studio 2012 中运行此程序时,它只会出现问题,但在 Windows 7 中的 Visual Studio 2012 中运行良好。
我不知道我们必须设置或取消设置哪些标志(可能是优化标志)才能让我的程序在发布模式下工作。
请给我一个解决方案
【问题讨论】:
标签: c++ visual-studio-2012 windows-8