问题标签 [compiler-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 回答
718 浏览

c++ - 为什么来自 IBM XL C/C++ 编译器的警告?

这是说明问题的最小代码示例:

这会产生相同的错误:

AIX 下的 IBM XL C/C++ 8.0 编译器发出以下警告:

我还使用“-Wall”和“-pedantic”尝试了 g++ 4.1.2,但没有得到诊断。为什么这里需要访问复制构造函数?除了使对象可复制(不在我的控制范围内)或使显式副本通过(当现实生活中的对象复制成本很高时)之外,我如何消除警告?

0 投票
3 回答
611 浏览

xcode - 不必要的 (?) Xcode 警告

我在 Core 2 Duo 上的 OS X 10.6 中运行 Xcode。这是一个简短的程序:

当我从命令行(gcc -pedantic)编译它时,我没有收到任何错误或警告。当我在调试配置中的 Xcode 中编译它时,我没有收到任何错误或警告。当我在发布配置中的 Xcode 中编译它时,我收到一个警告:“隐式常量转换中的溢出”。

Long 应该是 64 位的。并且程序运行良好。那么发生了什么事,我该如何摆脱这个警告?

0 投票
2 回答
4803 浏览

c - 如何处理来自 GCC 的 -Wconversion 警告?

我正在使用 GCC 的 -Wconversion 警告标志构建我的项目。(gcc (Debian 4.3.2-1.1) 4.3.2) 在 64 位 GNU/Linux 操作系统/硬件上。我发现它有助于确定我在哪里混合了类型或不清楚应该使用哪些类型。

在激活它的警告的大多数其他情况下,它并没有太大帮助,我在问我打算如何处理这些:

由于上述测试(案例ac)的意外结果,我还要求解释这些差异。

(char)编辑:将所有这些都用于防止警告是否过度设计?

Edit2:一些额外的案例(继上述案例之后):

除此之外,我要问的是主观的,当您认为某些开发人员主张删除所有警告时,我想听听其他人在此类情况下如何处理转换警告。

耶:

一种可能的解决方案是只使用ints 而不是chars 对吗?实际上,它不仅需要更多内存,而且速度也较慢,如以下代码所示。数学表达式只是为了在使用-Wconversion. 由于转换,我假设使用char变量的版本会比使用 s 的版本运行得慢,但在我的(64 位双核 II)系统上,版本更慢。intint

传递-DUSE_INT给 gcc 以构建上述代码段的 int 版本。

0 投票
3 回答
4094 浏览

ocaml - 可选参数不能被删除?

我想有一个尾递归版本List.map,所以我自己写了。这里是:

每当我编译这个函数时,我得到:

教程说这意味着我正在尝试创建一个没有非可选参数的函数。但是上面的函数显然需要非可选参数。

我可能只是在做一些非常愚蠢的事情,但是什么?

0 投票
7 回答
27010 浏览

c++ - 为什么“并非所有控制路径都返回值”是警告而不是错误?

我试图回答这个问题。正如接受的答案所建议的那样,该代码的问题在于并非所有控制路径都返回一个值。我在 VC9 编译器上尝试了这段代码,它给了我同样的警告。我的问题是为什么只是警告而不是错误?另外,如果不返回值的路径被执行,函数将返回什么(它必须返回一些东西)?它只是堆栈顶部的任何东西,还是再次出现可怕的未定义行为?

0 投票
11 回答
37282 浏览

java - 如何故意导致自定义 java 编译器警告消息?

在我们等待外部资源修复时,我将提交一个丑陋的临时黑客以解决阻塞问题。除了用一个可怕的评论和一堆 FIXME 标记它之外,我希望编译器抛出一个明显的警告消息作为提醒,所以我们不要忘记把它拿出来。例如,类似:

有没有办法可以通过我选择的消息引起故意的编译器警告?如果做不到这一点,添加到代码中以引发现有警告的最简单的方法是什么,可能在违规行的字符串中包含一条消息,以便将其打印在警告消息中?

编辑:弃用的标签似乎对我没有任何帮助:

eclipse 或 sun javac 1.6(从 ant 脚本运行)中没有编译器或运行时错误,它肯定在执行该函数。

0 投票
4 回答
257 浏览

visual-studio - Visual Studio:当私有或内部成员没有引用时发出警告

有没有办法让视觉工作室警告私人成员在类中没有任何引用?在包/模块中没有引用的内部成员怎么样?

我一直在重构我的代码,我不想保留 [右键单击] --> 为我的代码库中的每个成员查找所有引用,以确保我已经删除了所有垃圾。一定有更好的方法...

0 投票
1 回答
1314 浏览

c++ - 使用 gcc 4.1.2 抑制代码块的警告?

我有一段代码使用了一个 Boost 库,它会导致很多这些类型的警告消息:

使用 g++ 4.1.2,我如何暂时禁用此代码块的警告,然后在它之后再次启用它们。

我尝试的一切(pragma gcc 诊断等)似乎只受更高版本的 g++ 支持。

如何抑制这些警告?

0 投票
6 回答
32016 浏览

c - 为什么 gcc 报告“函数'round'的隐式声明”?

我有以下 C 代码:

当我编译这个时,我收到警告:

我对 C 很生疏,但我认为 #include 将 round() 的声明带入了范围。我检查了我的 ANSI 标准(C99 是我拥有的唯一副本),它确认在 math.h 标头中存在 round() 函数。我在这里想念什么?

编辑:编译器是 Ubuntu (intrepid, IIRC) 上的 GCC 4.3.2。运行 gcc -E 给出:

所以定义显然没有在标题中找到。

0 投票
1 回答
4473 浏览

iphone - iPhone SDK 警告:MyAppViewController 类未实现“UITabbarDelegate”协议

我正在开发一个 iPhone 应用程序,不使用 IB,并以编程方式在基于视图的应用程序的 UIViewController 中创建了一个包含三个项目的 UITabbar,我使用了一个委托方法,如果没有下面代码段中的最后一行(setDelegate 方法),它将无法工作。我没有 tabbarviewcontroller。

是否有可能消除此警告?我不是 Cocoa 程序员,有时需要在 iphone 上工作。