我在使用 Visual Studio 2008 编译的 C++ 中使用以下代码:
char input = 'K';
long output= strtol(&input , NULL, 36);
在调试模式下它工作正常,输出为 20。
但在发布模式下它会产生奇怪的输出,如 604663109。
当我设置禁用代码优化时它也可以工作,但这不是解决方案。
我也知道,如何手动计算,但我想知道,为什么调试和发布模式有区别?
已编辑:对不起,它必须是 char 而不是 char*。但同样的错误。