问题标签 [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.
c - Wunused-but-set-variable 警告处理
我有以下代码,在使用 gcc-4.6 编译时收到警告:
警告:变量“状态”已设置但未使用 [-Wunused-but-set-variable]
当 _DEBUG_ 标志未设置时,我会收到警告。任何想法如何解决此警告?
c - 没有成员编译错误
我有以下代码,当我尝试编译它时,出现错误:
错误:“list_item_t”没有名为“state”的成员</p>
有什么创意可以让这段代码在没有警告和错误的情况下编译吗?
c - 如何正确解决 -Wcast-qual
我有一个k
类型的变量const char *
,以及一个带有原型的 glib 函数
gpointer
被简单地定义为
我知道在这种情况下,实际上可以k
作为 key in传入g_hash_table_replace
,但是 gcc 给了我错误
这是 gcc 4.6.0。在 4.5.0 及更早版本中,对 (char *) 的简单强制转换就足以消除此警告,但 gcc 似乎变得“更聪明”了。我试过(char *)(void *)k
了,但它仍然知道该变量最初是const
. strdup(3)
在不调用的情况下消除此警告的最佳方法是什么k
?
opengl - 如何修复以下 gcc 警告?
我已经开始学习 OpenGL 并设法使用顶点缓冲区对象创建一个旋转立方体。但是,当我编译我的代码时,gcc 会发出以下警告:
我应该怎么做才能修复这些警告?
这是我的代码:
此外,我使用以下命令编译我的代码:gcc sdlogl.c -g -Wall -lSDL -lGL -lGLU
c - 即使 L 后缀,C 中的十六进制常数也是无符号的
我知道这是一个简单的问题,但我很困惑。我有一个相当典型的 gcc 警告,通常很容易修复:
warning: comparison between signed and unsigned integer expressions
每当我有一个具有最高有效位的十六进制常量时,例如 0x80000000L,编译器会将其解释为无符号。例如,使用 -Wextra 编译此代码将导致警告 (gcc 4.4x, 4.5x):
我已经专门为常量加上了后缀,那么为什么会发生这种情况呢?
c - mingw printf 大小规格字符 h
Visual Studio 有一个大小和距离规范图表,说明我可以做这样的事情,使用 h 前缀来指定单字节字符串,而不管 printf 或 wprintf:
但是,如果我用 mingw gcc 和 -Wall 编译相同的东西,我会收到以下警告:
warning: format '%hs' expects type 'short int *', but argument 2 has type 'char *'
我正在做的事情是在 mingw 中指定单字节字符串的可接受方式吗?
谢谢
编辑-这个问题已经在下面得到了相当详细的回答。简短的回答是肯定的,这是在 mingw 中指定单字节字符串的可接受方式,并且可以忽略警告。
gcc - GCC 警告:ISO C 不允许命名可变参数宏
使用以下命令
我收到编译器警告 root.h:76:22: warning: ISO C does not permit named variadic macros
我相信选项 -ansi -std=c99 允许使用可变参数宏,无论如何它都根据文档...
我尝试将第 76 行编辑为
看看这是否解决了警告但没有喜悦。
编译器版本是 Apple 的 gcc,版本 4.2.1 我不确定我是否需要对此过于担心,但我真的不喜欢警告。我错过了什么旗帜?
c - 警告:变量集但未使用 [-Wunused-but-set-variable]
我在编译 C 源代码时收到以下警告gcc 4.6.1
。
我参考了这个链接Wunused但可以确切地知道是什么导致了这个警告。有人能更详细地告诉我是什么导致了这个警告吗?我们如何才能摆脱它?
[编辑] 我有以下代码片段。编译显示上述警告。你能建议我如何纠正它吗?
c - -Wall 没有 -Wreturn 类型
根据 GCC 手册,这些-Wreturn-type
选项使用-Wall
. 但是,我找不到在保持其余部分-Wall
启用的同时禁用它的正确方法。
考虑这段代码:
如果编译时没有警告,则不会产生任何输出。现在,如果我打开-Wall
以下行将出现:
好的,一切都很好。现在,如果使用 编译-Wreturn-type
,将产生相同的输出:
因此,我得出结论,这-Wreturn-type
对这些警告负责。但也许不是,或者我正在做更糟糕的事情,因为预计这不会产生任何输出:
是否可以使用-Wall
但完全禁用-Wreturn-type
?或者也许我错过了另一个可用的选项?
如果重要的话,我在 Mac OS 10.7(Darwin 11)和 GCC 4.2.1 上(奇怪的是,用 LLVM 编译:P)
c - gcc:错误:在不是结构或联合的情况下请求成员“rlen”
我有一个包含结构的无符号字符指针。现在我想做以下事情
其中 record_t 结构包含一个名为 len 的字段。我无法这样做并且收到错误。
我在这里做错了什么?