319得票23回答
如何最好地消除有关未使用变量的警告?

我有一个跨平台应用程序,在一些函数中并没有使用传递给函数的所有值。因此,GCC会警告我存在未使用的变量。 如何最好地编写代码以避免这个警告? 在函数周围添加 #ifdef 呢?#ifdef _MSC_VER void ProcessOps::sendToExternalApp(QStrin...

270得票13回答
如何在C语言中禁止“未使用参数”的警告?

例如:Bool NullFunc(const struct timespec *when, const char *who) { return TRUE; } 在C++中,我能够在参数周围放置一个/*...*/的注释。但是在C语言中不行,它会给我以下错误: error: paramet...

256得票8回答
如何开启(字面上)GCC的所有警告?

我希望能够启用GCC的所有警告(你会认为这很容易...) 你也许会认为 -Wall 就可以实现,但实际上不行! 你仍然需要 -Wextra。 你也许会认为 -Wextra 就可以实现,但实际上并不是全部列在这里的警告都被启用了(例如-Wshadow)。而且我仍然不确定这个列表是否全面。 ...

198得票2回答
在C语言中,“&&”操作符是什么?

#include <stdio.h> volatile int i; int main() { int c; for (i = 0; i < 3; i++) { c = i &&& i; ...

172得票4回答
警告:内置函数“xyz”的隐式声明不兼容。

当我编译一些可执行文件时,我得到了很多这样的警告:warning: incompatible implicit declaration of built-in function ‘strcpy’ warning: incompatible implicit declaration of bui...

166得票10回答
如何抑制来自库头文件的GCC警告?

我有一个项目使用了log4cxx、boost等库,其头文件会产生大量(重复的)警告信息。是否有一种方法可以抑制来自库包含的警告(例如#include <some-header.h>),或者抑制来自特定路径的包含?我希望像往常一样在项目代码上使用-Wall和/或-Wextra,而不会...

98得票1回答
GCC的-Wpsabi选项到底是什么?禁用它会有什么影响?

背景去年我使用了nlohmann json库[1],并且在x86_64上使用GCC 5.xarm-linux-gnueabi-*进行交叉编译时没有收到任何警告。当我将GCC更新到新版本时,GCC会生成大量晦涩难懂的诊断信息。例如,下面是其中一个诊断信息的示例:In file included ...

95得票8回答
Pedantic gcc警告:函数返回类型上的类型限定符

当我首次使用GCC 4.3编译我的C++代码时(在使用-Wall -Wextra选项成功编译过4.1、4.0和3.4版本后),我突然遇到了很多形如warning: type qualifiers ignored on function return type的错误。考虑temp.cpp:cla...

80得票2回答
在C语言中编译和运行没有main()函数的程序

我试图在C语言中编译和运行以下没有main()函数的程序。我使用以下命令编译了我的程序。gcc -nostartfiles nomain.c 编译器会发出警告。/usr/bin/ld: warning: cannot find entry symbol _start; defaulting t...

65得票2回答
函数声明为静态但从未定义

我有一个头文件,假设命名为abc.h,在里面我有以下函数声明:static int function1(); 我已经将这个头文件包含在abc.c中,并定义了该函数并使用它。static int function1() { < function definition> } 编译后我...