【问题标题】:Eclipse C++ WarningsEclipse C++ 警告
【发布时间】:2014-05-21 11:21:46
【问题描述】:

我最近格式化了我的电脑并重新安装了 Ubuntu 和 Eclipse。 之后,当我打开一个既没有警告又没有错误的 C++ 项目时,Eclipse 现在会显示一些我以前从未见过的警告,例如:

Macro definition can be replaced with constexpr expression

Un- or ill-initialized variable found

截图:

这些警告是什么意思?为什么要列出它们?在我重新安装 Ubuntu 和 Eclipse 之前它们不存在...

谢谢!

【问题讨论】:

  • 您可能在重新安装 Ubuntu 时安装了新的 gcc 版本,但报告了其他警告

标签: c++ eclipse ubuntu ubuntu-14.04


【解决方案1】:

Macro definition can be replaced with constexpr expression

这意味着,您使用了预处理器宏来定义常量。您应该将其替换为 C++ const 表达式,即将 #define PI 3.141 替换为 const double PI = 3.141;

Un- or ill-initialized variable found

这几乎是不言自明的。始终初始化您的变量,否则您将获得未定义的行为。

出现警告的原因可能是您安装的新 Ubuntu 版本附带了更新版本的 GCC,它报告的警告比以前的多。另一种解释是您使用了其他编译​​器选项,例如-Wall

【讨论】:

  • 事实上你对第一种警告是正确的:我使用了一些#defines。但我不知道其他警告......这是screenshot。我正在正确初始化它们...
  • 您的代码似乎没问题。此警告是由内置的 Eclipse 静态代码分析生成的,在这种情况下显然失败了。转到 Window > Preferences > C/C++ > Code Analysis 并在那里关闭警告。
  • 我刚刚检查了我在 Eclipse 首选项中激活了哪些警告,但我在任何地方都没有找到这个特定的警告。您使用的是哪个版本的 CDT?这也可能是其他人添加到您的偏好中的自定义警告。
  • CDT 8.3 这是我的 eclipse 上的代码分析选项的screenshot
  • 我以前从未见过这个特定的警告。我怀疑这是一个插件提供的自定义代码分析规则。
猜你喜欢
  • 1970-01-01
  • 2013-03-31
  • 1970-01-01
  • 2020-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多