标签: compiler-warnings

为什么要始终启用编译器警告?

我经常听到,在编译C和C ++程序时,我应该“始终启用编译器警告”。为什么这是必要的?我怎么做?

有时我也听说我应该“将警告视为错误”。我是不是该?我怎么做?

c c++ warnings c++-faq compiler-warnings

292
推荐指数
15
解决办法
3万
查看次数

什么是"android:allowBackup"?

自从新的ADT预览版本(版本21)以来,它们有一个新的lint警告,它告诉我清单文件(在应用程序标记中)的下一件事:

应该明确地将android:allowBackup设置为true或false(默认情况下为true,这可能会对应用程序的数据产生一些安全隐患)

官方网站上,他们写道:

一些新检查:您必须明确决定您的应用是否允许备份和标签检查.有一个新的命令行标志用于设置库路径.编辑时增量lint分析的许多改进.

这警告是什么?什么是备份功能,以及如何使用它?

另外,为什么警告告诉我它有安全隐患?禁用此功能有哪些缺点和优点?


清单有两种备份概念:

  • "机器人:allowBackup "允许备份和通过ADB恢复,如图所示在这里:

是否允许应用程序参与备份和还原基础结构.如果此属性设置为false,则不会执行应用程序的备份或还原,即使是全系统备份也会导致所有应用程序数据都通过adb保存.此属性的默认值为true.

这被认为是一个安全问题,因为人们可以通过ADB备份您的应用,然后将您应用的私人数据导入他们的PC.

但是,我认为这不是一个问题,因为大多数用户不知道什么是adb,如果他们这样做,他们也会知道如何根设备.ADB功能仅在设备启用了调试功能时才有效,这需要用户启用它.

因此,只有将其设备连接到PC并启用调试功能的用户才会受到影响.如果他们的PC上有使用ADB工具的恶意应用程序,这可能会有问题,因为应用程序可以读取私有存储数据.

我认为Google应该在开发人员类别中添加默认禁用的功能,以允许通过ADB备份和恢复应用.

  • "机器人:backupAgent "允许使用的备份和恢复云的功能,如在这里这里:

实现应用程序备份代理的类的名称,BackupAgent的子类.属性值应该是完全限定的类名(例如"com.example.project.MyBackupAgent").但是,作为简写,如果名称的第一个字符是句点(例如,".MyBackupAgent"),则它将附加到元素中指定的包名称.没有默认值.必须指定名称.

这不是安全问题.

android adt compiler-warnings android-lint android-backup-service

252
推荐指数
3
解决办法
13万
查看次数

Java中有效的@SuppressWarnings警告名称列表是什么?

@SuppressWarningsJava 中有效警告名称的列表是什么?

进来之间的("")@SuppressWarnings("").

java eclipse warnings compiler-warnings suppress-warnings

251
推荐指数
5
解决办法
14万
查看次数

如何禁用几行代码的GCC警告

在Visual C++中,可以使用#pragma warning (disable: ...).我还发现在GCC中你可以覆盖每个文件的编译器标志.我怎样才能为"下一行"做这个,或者使用GCC围绕代码区域推送/弹出语义?

c gcc pragma compiler-warnings

200
推荐指数
8
解决办法
12万
查看次数

objective c隐式转换丢失整数精度'NSUInteger'(又名'unsigned long')到'int'警告

我正在进行一些练习,并得到一个警告:

隐式转换失去整数精度'NSUInteger'(又名'unsigned long')到'int'

我很喜欢这个菜鸟,非常感谢任何帮助..谢谢.

#import <Foundation/Foundation.h>

int main (int argc, const char * argv[])

{
    @autoreleasepool {


        NSArray *myColors;

        int i;
        int count;

        myColors = @[@"Red", @"Green", @"Blue", @"Yellow"];

        count = myColors.count; //  <<< issue warning here

        for (i = 0; i < count; i++)

        NSLog (@"Element %i = %@", i, [myColors objectAtIndex: i]);

    }


return 0;

}
Run Code Online (Sandbox Code Playgroud)

截图

objective-c compiler-warnings implicit-conversion

182
推荐指数
3
解决办法
15万
查看次数

警告:隐式声明函数

我的编译器(GCC)给了我警告:

警告:隐式声明函数

请帮我理解为什么会这样.

c compiler-warnings

180
推荐指数
3
解决办法
59万
查看次数

物业获取者和二传手

有了这个简单的类,我得到编译器警告

试图x在自己的setter/getter中修改/访问

当我像这样使用它时:

var p: point = Point()
p.x = 12
Run Code Online (Sandbox Code Playgroud)

我得到一个EXC_BAD_ACCESS.如果没有明确支持ivars,我怎么能这样做?

class Point {

    var x: Int {
        set {
            x = newValue * 2 //Error
        }
        get {
            return x / 2 //Error
        }
    }
    // ...
}
Run Code Online (Sandbox Code Playgroud)

properties compiler-warnings getter-setter swift

179
推荐指数
8
解决办法
23万
查看次数

如何在Rust中禁用未使用的代码警告?

struct SemanticDirection;

fn main() {}
Run Code Online (Sandbox Code Playgroud)
warning: struct is never used: `SemanticDirection`
 --> src/main.rs:1:1
  |
1 | struct SemanticDirection;
  | ^^^^^^^^^^^^^^^^^^^^^^^^^
  |
  = note: #[warn(dead_code)] on by default
Run Code Online (Sandbox Code Playgroud)

我会将这些警告重新发送给任何严肃的事情,但我只是在修补这种语言而这正在驱使我蝙蝠.

我尝试添加#[allow(dead_code)]到我的代码,但这不起作用.

warnings dead-code compiler-warnings rust

179
推荐指数
8
解决办法
6万
查看次数

如何打开(字面上)所有GCC的警告?

我想启用 - 字面上 - GCC 所有的警告.(你会觉得这很容易......)

  • 你认为-Wall可能会有所作为,但不是!仍然需要-Wextra.

  • 你认为-Wextra可能会有所作为,但不是!并非此处列出的所有警告(例如-Wshadow)都已启用.我仍然不知道这份清单是否全面.

我如何告诉海湾合作委员会启用(不是,不是,或者是!)所有警告?

c++ gcc warnings compiler-warnings gcc-warning

177
推荐指数
6
解决办法
6万
查看次数

我=(i,++ i,1)+ 1; 做?

在阅读有关未定义行为和序列点的答案后,我写了一个小程序:

#include <stdio.h>

int main(void) {
  int i = 5;
  i = (i, ++i, 1) + 1;
  printf("%d\n", i);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出是2.天啊,我没有看到减量来了!这里发生了什么?

另外,在编译上面的代码时,我收到一条警告:

px.c:5:8:警告:逗号表达式的左侧操作数无效

  [-Wunused-value]   i = (i, ++i, 1) + 1;
                        ^
Run Code Online (Sandbox Code Playgroud)

为什么?但可能会通过我的第一个问题的答案自动回答.

c expression operators compiler-warnings comma-operator

175
推荐指数
7
解决办法
2万
查看次数