Tag: gcc warning

C警告函数隐式声明'exit'

这是我的警告。 implicit declaration of function 'exit' 我如何删除它。 我使用的是linux&gcc编译器。

有没有办法警告未使用的function?

我想在代码库中find未使用的函数,包括编译单元。 我使用gcc作为我的编译器。 这是一个例子: foo.c (假设合适的foo.h ): void foo() { …. } void bar() { …. } main.c : #include <stdio.h> #include "foo.h" int main(void) { bar(); return 0; } 在这个例子中,我想警告foo()没有被使用。 有-Wunused-function gcc选项: -Wunused-function 如果声明了一个静态函数但未定义,或者未使用非内联静态函数,则会发出警告。 此警告由-Wall启用。 但只是静态函数 – 它不会在上面的例子中产生警告。 我也会接受可以为我做的工具/脚本/其他编译器的build议 – 尽pipe如果可能的话我宁愿坚持使用gcc 。

迂回gcc警告:函数返回types的types限定符

当我第一次使用GCC 4.3编译我的C ++代码(编译成功之后, -Wall -Wextra没有带-Wall -Wextra选项的警告),我突然间发现了一堆forms为warning: type qualifiers ignored on function return type的错误warning: type qualifiers ignored on function return type 。 考虑temp.cpp : class Something { public: const int getConstThing() const { return _cMyInt; } const int getNonconstThing() const { return _myInt; } const int& getConstReference() const { return _myInt; } int& getNonconstReference() { return […]

有没有海湾合作委员会的选项来警告写`this-field`而不是`this-> field`?

这下面的代码(包含一个恶性bug)编译与GCC没有任何警告。 但是,当然,这并不像开发人员(我)预期的那样工作。 #include <iostream> struct A { bool b; void set(bool b_) { this->b = b_; } bool get() const { return this-b; } // The bug is here: '-' instead of '->' }; int main() { A a; a.set(true); std::cout << a.get() << std::endl; // Print 1 a.set(false); std::cout << a.get() << std::endl; // […]

C中的&&&操作是什么?

#include <stdio.h> volatile int i; int main() { int c; for (i = 0; i < 3; i++) { c = i &&& i; printf("%d\n", c); } return 0; } 上面的程序使用gcc编译的输出是 0 1 1 使用-Wall或-Waddress选项, gcc发出警告: warning: the address of 'i' will always evaluate as 'true' [-Waddress] 在上面的程序中如何评估c ?

将二维数组传递给常量参数的函数

我从C Primer Plus了解到,如果要保护数组不被函数意外修改,则应在函数定义头部的指针声明之前添加const修饰符。 遵循这个明智的build议,在下面的最小的例子中,我试图将一个非常量的二维数组array传递给Sum2D函数,其中的一个参数是一个pointer-to-const-int[2]的pointer-to-const-int[2] 。 #include <stdio.h> #define ROWS 2 #define COLS 2 int Sum2D(const int ar[][COLS], int rows); //use `const` to protect input array int main(void) { int array[ROWS][COLS]={{1,2},{3,4}}; //the non-constant array printf( "%d\n", Sum2D(array,ROWS) ); return 0; } int Sum2D(const int ar[][COLS], int rows) { int total=0; int i,j; for( i=0 ; i<rows […]

警告:不兼容隐式声明的内置函数'xyz'

编译几个二进制文件时,我收到了一些警告: warning: incompatible implicit declaration of built-in function 'strcpy' warning: incompatible implicit declaration of built-in function 'strlen' warning: incompatible implicit declaration of built-in function 'exit' 为了解决这个问题,我添加了 #include <stdlib.h> 在与此警告关联的C文件的顶部,除了使用以下标志进行编译之外: CFLAGS = -fno-builtin-exit -fno-builtin-strcat -fno-builtin-strncat -fno-builtin-strcpy -fno-builtin-strlen -fno-builtin-calloc 我正在使用GCC 4.1.2: $ gcc –version gcc (GCC) 4.1.2 20080704 我该怎么办才能解决这些警告?

C中的“未使用参数”警告

在C代码中抑制未使用的参数警告的最好方法是什么? 例如, Bool NullFunc(const struct timespec *when, const char *who) { return TRUE; } 在C ++中,我能够在参数中join/*…*/注释。 但当然不是C 它给我error: parameter name omitted 。

如何从库头压缩GCC警告?

我有一个使用log4cxx,boost等库的项目,这些库的头文件会生成很多(重复的)警告。 有没有一种方法来压制库中的警告(即#include <some-header.h>)或包含某些path? 我想在项目代码上像往常一样使用-Wall和/或-Wextra,而相关信息不被遮盖。 我目前使用grep做输出,但我想要更好的东西。