【发布时间】:2016-05-29 12:43:15
【问题描述】:
我在 Visual Studio Enterprise 中编写 C++ 作业代码。但是,我注意到当我在 linux 中运行我的代码以检查不同的平台时,我会遇到错误,因为无论你对变量做什么,Visual Studio 都会将所有变量初始化为零。例如,我忘记将链接列表练习中的头指针设置为 nullptr,VS 仍然运行良好,但 linux 没有。我真的很想早点发现这些错误,那么有没有办法在VS中禁用这种自动初始化?
谢谢
【问题讨论】:
-
VS 仅在调试版本中执行此操作。测试您的发布版本。
-
我记得问题恰恰相反,g++ 打算通过将局部变量归零来提供“熊的帮助”。无论如何,解决方案是采用更严格的编程实践。
-
@Y。 Lou 通常,当使用具有自动存储持续时间的未初始化变量时,编译器会发出警告。查看是否可以更改 MS VC++ 的警告级别。
-
尝试在发布模式下编译。还可以考虑将 Linux 作为您的主要构建平台。通过 valgrind 运行您的程序以捕获大量错误。使用 -Wall -Wextra -Werror 进行编译,基本就搞定了。
-
@Cheersandhth.-Alf 不需要放弃任何东西。在 Visual Studio 中编辑代码是可以的,这没什么问题。
标签: c++ visual-studio visual-studio-2010 visual-studio-2012 visual-c++