问题标签 [gcc-warning]

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 回答
22075 浏览

c - 从以下代码中获取警告“从不同大小的整数转换为指针”

代码是:

这是 C code push回报 ABC

特定警告的原因是什么?

0 投票
3 回答
312 浏览

c++ - GCC 3.3.4 中的 char 数组声明错误

但我收到错误“格式争论不是指针”

如何声明一个数组以获取用户的所有值?

编辑 :

这是我的源代码。

0 投票
2 回答
1569 浏览

c++ - 与 C++ 库链接时,如何在 OCaml 编译中抑制 g++ 弃用警告?

在编译一个 OCaml 项目时,该项目链接到需要 C++ 标准库的库(例如 LLVM 的 OCaml 绑定),使用-cc g++参数 to ocamlcwith GCC >= 4.4 会生成极其冗长的警告,形式如下:

如何删除这些警告?

0 投票
2 回答
413 浏览

c++ - 如何为特定目录或文件启用特定 gcc 警告?

可能重复:
仅对部分翻译单元有选择地禁用 GCC 警告?

如何为特定目录或文件启用特定 gcc 警告?

我想为我自己的文件启用-Wsign-conversion,而不是为任何其他系统头文件

0 投票
4 回答
1674 浏览

c++ - GCC中枚举开关控制流分析不足

在以下 C++ 代码中:

使用 编译时会发出警告-Wall,表示控件到达非 void 函数的末尾。为什么?


编辑

test示例中的变量可以包含任何值通常是不正确的。

foo(12354)不编译:

因为 12354 不是一个有效值Test(尽管它在纯C确实有效,但它不在 C++ 中)。

您确实可以将任意整数常量显式转换为枚举类型,但这不被认为是未定义的行为吗?

0 投票
2 回答
8771 浏览

g++ - 如何在几行代码上禁用 g++ 中的所有警告

如何禁用几行代码的所有警告。可以使用 GCC 诊断功能禁用特定警告,但是否有所有警告的标志。我试过这种方式,但它不起作用

0 投票
1 回答
12356 浏览

c - 格式“%ld”需要类型“long int”,但参数 3 的类型为“TEST”

这里 TEST 是一个结构指针。结构包含整数。什么是合适的因素?TEST 结构如下。我使用 gcc 作为编译器。

0 投票
1 回答
825 浏览

c++ - 为什么boost :: optional对于继承虚函数的类会失败

boost::optional<> 适用于简单的数据类型,但一旦用于从实现接口的类继承的类,当启用严格别名时它会失败。

例子:

使用 gcc 版本 4.4.3 编译以下错误:

解决此问题的最佳方法是什么。我非常想启用严格混叠警告。我使用的是 boost 1.44 版。

更新:

变得更糟了!!考虑以下代码:

使用 gcc 版本 4.4.3 编译如下:

如果标有“//comment out for surprise”的行被注释掉,我会收到严格的别名警告。我已经检查了至少 20 次。这是我见过的最奇怪的事情之一。看起来 boost::optional 初始化了某事。独立于它的模板参数,或者像 gcc 一样,只有在使用 sth 调用时才能理解 boost::optional。先琐碎。有任何想法吗 ?

0 投票
2 回答
2672 浏览

c - 函数的隐式声明

当不包含正确的头文件时,GCC 通常会产生此警告。此链接-> www.network-theory.co.uk/docs/gccintro/gccintro_19.html表示由于函数声明是隐式的(而不是通过标头显式声明),实际上可能会将错误的参数类型传递给函数,产生不正确的结果。我不明白这一点。这是否意味着编译器生成的代码会将机器字长的某些东西推送到堆栈上以供被调用者使用,并希望得到最好的结果?

细节表示赞赏。

0 投票
3 回答
958 浏览

c++ - 为什么未使用的临时对象没有 gcc/g++ 警告?

考虑以下代码:

(这是 GoF 中描述的观察者模式的实现。)这里的用户干预是为了保护 attach() 和 notify() 不同时运行,因此 boost::unique_lock。目标是保护subscribers容器。

但是确实很难注意到这些锁实际上只是临时的(仔细看看,没有为它们分配名称)。因此,当临时对象被破坏时,互斥锁上的锁将立即释放,即代码不是线程安全的。我希望在这种情况下会出现编译器警告。诸如“未使用的临时”之类的东西。

更糟糕的是,cppcheck 也不会识别这个错误。(cppcheck:ac/c++代码分析工具http://sourceforge.net/apps/mediawiki/cppcheck/index.php?title=Main_Page

Gcc 对未使用的变量发出警告。这里的临时变量是一个未使用的变量,肯定是程序员疏忽的结果。那么,为什么在这种情况下没有警告呢?也许发现这种情况太复杂了?