【问题标题】:False warnings on Android Studio 3.3 (NDK)Android Studio 3.3 (NDK) 上的错误警告
【发布时间】:2019-06-19 02:12:48
【问题描述】:

在最近的 3.3 更新中,Android Studio 似乎有一个非常烦人的错误,会在 C/C++ 代码中发出错误警告。

如上图所示,IDE 会在每个包含立即数的位操作时发出警告信号,即使它是一个正数。

摆脱这种烦恼的唯一方法是将直接值“类型转换”为uint32_t,这会更烦人。

是否有任何选项可以抑制Android Studio 中的此类警告?我在我的代码中进行了大量的位操作,这让我非常恼火。

或者它可能是clang的错,假设任何立即值默认都是有符号的。是否有编译器选项可以更改它?

【问题讨论】:

    标签: c++ android-studio android-ndk clang clang-tidy


    【解决方案1】:

    来自 Android Studio release notes

    对 C++ 的 Clang-Tidy 支持 - Android Studio 现在支持 Clang-Tidy 用于 C++ 静态代码分析。类似于当前的 lint 在 Android Studio 中支持 Java 和 Kotlin,Clang-Tidy 帮助那些 在他们的 Android 应用程序中使用 C++ 的人可以识别常见的编码错误并 错误。通过转到设置→编辑器→启用检查 检查(Preference → Editor → Inspections for MacOS)。学习 更多。

    因此您可以通过以下方式禁用它:

    Preferences->Editor->Inspections->General->Clang-tidy

    奖金: 如果您想从中选择,您可以找到 Clang-Tidy 选项列表: http://clang.llvm.org/extra/clang-tidy/#using-clang-tidy

    【讨论】:

    • 似乎是hicpp-signed-bitwise 选项引起了所有的头痛。我不反对编译器对有符号的按位运算发出警告,但我发现用正立即值进行处理真的很愚蠢。你能告诉我如何单独禁用这个特定选项而不是完全禁用clang-tidy吗?我试图将-hicpp-signed-bitwise 放在选项列表中无济于事(重新打开时它会被删除),并通过对话框进行配置,我不知道该放什么值。 (0 和“Off”都不起作用)
    【解决方案2】:

    会评论您的原始帖子,但我没有代表。这不是错误警告,因为原始代码中的 3 实际上是有符号整数文字。在 C/C++ 中,所有整数字面量都是默认签名的。要创建无符号文字,您需要添加 U 后缀(例如 3u3U)。无需使用演员表即可。

    【讨论】:

      猜你喜欢
      • 2019-06-22
      • 2017-03-12
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 1970-01-01
      • 2015-11-27
      • 1970-01-01
      • 2018-04-10
      相关资源
      最近更新 更多