问题标签 [warnings]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
8178 浏览

gcc - g++ 或 gcc 选项以获取带有警告 ID 的警告消息

默认情况下,gcc/g++ 仅打印带有行号的警告消息。我正在寻找 g++ 或 gcc 将构建警告消息与警告 ID 相关联的选项,以便可以轻松识别警告消息(无需解析)。还有更多选项可以获取更详细的警告信息吗?(虽然我认为每条警告信息本身都可以解释,但只是好奇)

谢谢。

0 投票
5 回答
4440 浏览

perl - 我应该使用命令行开关或编译指示打开 Perl 警告吗?

下面两个开始 Perl 脚本的例子有区别吗?如果是这样,我什么时候会使用其中一个?

示例 1:

示例 2:

0 投票
4 回答
5136 浏览

c++ - 条件表达式中的常量值

关于无限循环的编码风格问题中,有些人提到他们更喜欢 for(;;) 风格,因为 while(true) 风格会在 MSVC 上给出关于条件表达式为常数的警告消息。

这让我非常惊讶,因为在条件表达式中使用常量值是避免#ifdef 地狱的有用方法。例如,您可以在标题中包含:

并且代码可以简单地使用条件并信任编译器在未定义 CONFIG_FOO 时删除死代码:

不必每次使用 foo_enabled 时都测试 CONFIG_FOO:

这种设计模式一直在 Linux 内核中使用(例如,include/linux/cpumask.h 在禁用 SMP 时将多个宏定义为 1 或 0,在启用 SMP 时定义为函数调用)。

MSVC 警告的原因是什么?此外,有没有更好的方法来避免 #ifdef 地狱而不必禁用该警告?或者它是一个过于宽泛的警告,一般不应该启用?

0 投票
3 回答
15128 浏览

c# - 为什么在 lambda 表达式中使用迭代变量不好

我只是在写一些快速代码并注意到这个编译器错误

在 lambda 表达式中使用迭代变量可能会产生意想不到的结果。
相反,在循环中创建一个局部变量并将迭代变量的值分配给它。

我知道这意味着什么,我可以轻松修复它,没什么大不了的。
但我想知道为什么在 lambda 中使用迭代变量是个坏主意?
我以后会引起什么问题?

0 投票
4 回答
2214 浏览

perl - Perl 什么时候自动初始化变量?

这是一些简单的 Perl 来计算一个值在数组中出现的次数。这运行没有任何警告。

当循环体更改为

Perl 警告“另外使用未初始化的值”。

引擎盖下发生了什么?为什么将值作为操作数提供给 ++ 运算符并使用 + 运算符未初始化时进行初始化?

0 投票
2 回答
2975 浏览

perl - 如何使用 Perl 的 DBI 将日期值从 Oracle 转换为 Excel?

我遇到了一个非常简单的 Perl 进程的问题。我基本上是在查询一个 Oracle 数据库,我想将它加载到 Excel 中。我已经能够使用 DBIx::Dump 并且它有效。但是,我需要能够使用各种 Excel 格式化工具。而且我认为Spreadsheet::WriteExcel是输出到 Excel 的最佳模块,它允许我进行更多格式化。

下面是代码和我得到的错误。我基本上是查询 Oracle,获取数据,加载到数组中并尝试写入 Excel。出于某种原因,它正在进行某种比较并且它不喜欢数据类型。例如,日期是“25-OCT-08”。SVP 是“S01”。似乎是在说它们不是数字。

错误:

代码:

0 投票
18 回答
372022 浏览

php - 如何处理 PHP 中 file_get_contents() 函数的警告?

我写了一个这样的PHP代码

但是,当我从中删除“http://”时,$site会收到以下警告:

警告:file_get_contents(www.google.com) [function.file-get-contents]:未能打开流:

我试过了trycatch但没有用。

0 投票
6 回答
8226 浏览

gcc - 什么标志使 GCC 关于文件结尾没有换行符的警告静音?

我刚刚阅读了这篇关于为什么存在换行警告的帖子,但老实说,我的团队有一些人在几个不同的平台上工作,并与几个不同的编辑器一起工作(每个人都使用最适合他们的东西),所以警告已经无处不在,而且因为它不是真正值得关注的警告已成为噪音,并使查找严重警告变得麻烦。

很多时候重要的警告都被忽视了,因为人们已经习惯了无数无用的警告经过,所以他们显然只是停止仔细查看它们,恕我直言。可以说在我们的案例中,GCC 哭得太狼狈了,以至于任何人都不再认真对待它,这是一种不好的态度,但它只是人性。

现在我们用 编译-Wall,因为我们想要警告,但是是否有一个计数器标志来避免换行警告?

注意:我仔细阅读了手册,但没有在任何明显的地方找到答案,所以我放弃了。

注意:作为对 Robert Gamble 完全合理的解决方案的回应,我们的代码是跨平台的,并且我们有人员并在 Linux、Solaris 和 Windows 上构建,因此新行……尚未达成共识。并且某人的编译器总是会哭狼。因为有超过 40 名开发人员,以及其他非程序员人员。

0 投票
3 回答
16424 浏览

c++ - 警告 C4244:“参数”:从“SIZE_T”转换为“DWORD”,可能丢失数据

我需要在我的代码中有一组重载函数,但我得到了转换警告。这是一个测试代码:

编译器给出警告:

如果我取消注释 void f(SIZE_T arg) 我得到

如何避免出现此警告或错误?

0 投票
2 回答
4439 浏览

sql - SQL Server 2000 “NO JOIN PREDICATE”警告 - 为什么?

我在使用 SQL Server 2000 时遇到了一个奇怪的问题,我只是想不出发生这种情况的原因。

有两个表,都有一个组合主键和一个聚集索引,两个键具有相同的结构:

所以,像这样加入他们很容易:

查看查询执行计划,我看到:

  • 聚集索引搜索 [db].[dbo].[table1].[PK_table1] (48%)
  • 聚集索引搜索 [db].[dbo].[table2].[PK_table2] (51%)
  • 嵌套循环(内部连接)(1%)警告:没有连接预测
  • 选择 (0%)

现在如果我这样做(注意 NVARCHAR 字符串!):

我得到:

  • 聚集索引扫描 [db].[dbo].[table1].[PK_table1] (98%)
  • 聚集索引搜索 [db].[dbo].[table2].[PK_table2] (1%)
  • 嵌套循环(内部连接)(1%)这里没有警告
  • 选择 (0%)

这种行为让我有点困惑。

  • 为什么会出现“NO JOIN PREDICATE”警告,为什么当我更改'Foo'为时它会消失N'Foo'?我的键列不是 NVARCHAR 类型,所以这不应该有任何区别,还是应该?
  • 此警告的存在是否有负面影响,或者我可以忽略它吗?
  • 为什么它会从 Index Seek 切换到 Index Scan?

一些背景信息:表基数约为。一张表有 25,000 条记录,大约 12,000 条记录在另一个。数据库兼容级别是 80 (SQL Server 2000),默认排序规则是SQL_Latin1_General_CP1_CI_AS,如果这有什么不同的话。

以下是 的内容@@VERSION

Microsoft SQL Server 2000 - 8.00.2273 (Intel X86) Mar 7 2008 22:19:58 版权所有 (c) 1988-2003 Microsoft Corporation Enterprise Edition on Windows NT 5.0 (Build 2195: Service Pack 4)

PS:我知道KB322854,但这显然不是。