Android Studio 3.3 (NDK) 上的错误警告

False warnings on Android Studio 3.3 (NDK)

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

如您在上图中所见,IDE 对包含立即数的每个位操作发出警告,即使它是正数也是如此。

摆脱这种烦恼的唯一方法是 "typecast" 立即值 uint32_t 这会更烦人。

Android Studio 中是否有任何选项可以抑制此类警告?我在我的代码中做了很多位操作,这让我现在很烦。

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

来自 Android 工作室 release notes:

Clang-Tidy Support for C++ - Android Studio now has support for Clang-Tidy for C++ static code analysis. Similar to the current lint support for Java and Kotlin in Android Studio, Clang-Tidy helps those who have C++ in their Android app identify common coding errors and bugs. Enable the inspection by going to Settings → Editor → Inspections (Preference → Editor → Inspections for MacOS) . Learn more.

因此您可以从以下位置禁用它:

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

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

本来可以评论您的原作 post,但我没有代表。这不是错误警告,因为原始代码中的 3 实际上是带符号的整数文字。在 C/C++ 中,所有整数文字都默认签名。要创建无符号文字,您需要添加一个 U 后缀(例如 3u3U)。无需使用强制转换即可。