在最新的3.3更新中,uint32_t
似乎有一个非常烦人的错误,用C / C ++代码给出了错误的警告。
如上图所示,IDE会在每位操作包含立即数的情况下向其发出警告,即使该值是正数也是如此。
摆脱这种烦恼的唯一方法是将即时值“强制转换”到Android Studio
上,这会更加烦人。
在{{1}}中是否可以禁止这种警告?我在代码中进行了大量的位操作,这现在让我很烦。
也可能是clang的错,假设任何即时值默认为带符号的值。是否有编译器选项可以更改它?
答案 0 :(得分:1)
从Android Studio release notes:
C ++的Clang-Tidy支持-Android Studio现在支持 Clang-Tidy,用于C ++静态代码分析。类似于当前的皮棉 在Android Studio中支持Java和Kotlin,Clang-Tidy可以帮助那些 在Android应用中使用C ++的用户会发现常见的编码错误, 错误。转到设置→编辑器→启用检查 检查(首选项→编辑器→MacOS的检查)。学习 更多。
因此您可以从以下位置禁用它:
首选项->编辑器->检查->常规->整洁
奖金: 如果要从以下选项中选择,可以找到Clang-Tidy选项的列表: http://clang.llvm.org/extra/clang-tidy/#using-clang-tidy
答案 1 :(得分:1)
将对您的原始帖子发表评论,但我没有代表。这并不是一个错误的警告,因为原始代码中的3实际上是一个带符号的整数文字。默认情况下,所有整数文字均在C / C ++中签名。要创建无符号文字,您需要添加U后缀(例如3u
或3U
)。无需使用强制转换。