我遇到问题是,软件的x64版本是没问题,但是同一套代码编出来的win32版本有问题。经过未知的努力,发现把VS优化项禁用掉就好了(原来优化项是速度最大化)。再深究下去,才找到了原因。
代码里没有返回值,导致了编译器返回了一个默认值,默认值是不定义的,导致了不定义的行为。vs2010与vs2012的默认返回值会不一样,优化开启与优化关闭的默认返回值会不一样。
除了不添加返回值的操作,未初始化也会导致程序的不定义行为
我遇到问题是,软件的x64版本是没问题,但是同一套代码编出来的win32版本有问题。经过未知的努力,发现把VS优化项禁用掉就好了(原来优化项是速度最大化)。再深究下去,才找到了原因。
代码里没有返回值,导致了编译器返回了一个默认值,默认值是不定义的,导致了不定义的行为。vs2010与vs2012的默认返回值会不一样,优化开启与优化关闭的默认返回值会不一样。
除了不添加返回值的操作,未初始化也会导致程序的不定义行为