相关疑难解决方法(0)

如何在C中抑制"未使用的参数"警告?

例如:

Bool NullFunc(const struct timespec *when, const char *who)
{
   return TRUE;
}
Run Code Online (Sandbox Code Playgroud)

在C++中,我能够对/*...*/参数进行评论.但当然不是在C中,它给了我错误error: parameter name omitted.

c gcc gcc-warning

195
推荐指数
10
解决办法
15万
查看次数

为什么在没有返回值的情况下流出非void函数的末尾不会产生编译器错误?

自从我多年前意识到这一点,默认情况下这不会产生错误(至少在GCC中),我一直想知道为什么?

我知道您可以发出编译器标志来产生警告,但是它不应该总是出错吗?为什么非void函数没有返回值才有效?

评论中要求的示例:

#include <stdio.h>
int stringSize()
{
}

int main()
{
    char cstring[5];
    printf( "the last char is: %c\n", cstring[stringSize()-1] ); 
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

...编译.

c c++ gcc g++

157
推荐指数
5
解决办法
4万
查看次数

解析命令行参数?

嗨,我正在尝试编写一个程序,可以逐行,逐字或逐字符地比较两个文件.它必须能够读入命令行选项"-l -w -i或 - "...如果选项是-l,它会逐行比较文件.如果选项是-w,它会逐字比较文件.如果选项是 - 它会自动假定下一个arg是第一个文件名.如果选项是-i,则以不区分大小写的方式对它们进行比较.否则,它默认按字符比较文件

只要-w和-l没有同时输入且没有多于或少于2个文件,输入选项的时间并不重要.

我甚至不知道从哪里开始解析命令行参数.请帮忙 :(

所以这就是我想出的所有代码.我还没有错误检查它,但我想知道我是否以过于复杂的方式写东西?

/*
 * Functions to compare files.
 */
int compare_line();
int compare_word();
int compare_char();
int case_insens();

/*
 * Program to compare the information in two files and print message saying 
 * whether or not this was successful.
 */
int main(int argc, char* argv[])
{
/*Loop counter*/
  size_t i = 0;

  /*Variables for functions*/
  int caseIns = 0;
  int line = 0;
  int word = 0;

  /*File pointers*/
  FILE *fp1, *fp2; …
Run Code Online (Sandbox Code Playgroud)

c command-line-arguments

83
推荐指数
6
解决办法
13万
查看次数

只选择部分翻译单元禁用GCC警告?

与此MSVC预处理器代码最接近的GCC是什么?

#pragma warning( push )                    // Save the current warning state.
#pragma warning( disable : 4723 )          // C4723: potential divide by 0
// Code which would generate warning 4723.
#pragma warning( pop )                     // Restore warnings to previous state.
Run Code Online (Sandbox Code Playgroud)

我们在常用的标题中包含代码,我们不希望生成特定的警告.但是,我们希望包含这些标头的文件继续生成该警告(如果项目启用了该警告).

c c++ gcc pragma compiler-warnings

82
推荐指数
3
解决办法
5万
查看次数

C中的静态断言

在C(而不是C++)中实现编译时静态断言的最佳方法是什么,特别强调GCC?

c gcc assert static-assert compile-time

79
推荐指数
4
解决办法
6万
查看次数

如何禁用特定包含文件的警告?

我想对特定包含文件直接或间接包含的所有文件禁用特定警告.例如,我想禁用警告"你正在为字符串文字指定一个字符串文字*",包括a所包含的文件所包含的所有文件或文件#include <bar/*>(在我的情况下,明星意味着"任何东西可能在这里").

原因是,我必须编程的一些人不能使用"const",所以最后我得到很多关于特定字符串文字滥用的警告.我想忽略来自他们代码的成千上万的警告,所以我可以专注于我自己的代码中的错误并修复它们.

我使用的是英特尔C++和GCC.我的一些伙伴使用clang,所以我很乐意听到解决方案.

c++ suppress-warnings

68
推荐指数
4
解决办法
3万
查看次数

动态转发:禁止不完整实施警告

我有一个暴露一些方法的类,其实现由内部对象提供.

我正在使用前向调用在运行时调度方法调用内部对象,但XCode抱怨,因为它无法找到声明的方法的实现.

我在SO上发现了一些其他类似的问题,但所有这些问题都是通过改变设计来解决的.

我并不是要在这里讨论设计,但如果有人对此有任何建议,我对Code Review 有一个未解决的问题,这个问题更适合这种讨论.

我的问题是,是否Incomplete Implementation存在关闭XCode警告的方法.

xcode objective-c llvm compiler-warnings suppress-warnings

42
推荐指数
2
解决办法
7669
查看次数

禁用gcc中的特定警告

在Microsoft编译器上,可以使用#pragma禁用特定警告,而不禁用其他警告.如果编译器警告"必须完成"的事情,这是一个非常有用的功能.

GCC此时是否有类似功能?这似乎是一个显而易见的功能,它无法想象它还没有这个功能,但网上的旧信息表明这个功能不存在.

在GCC中使用什么?

具体来说,我喜欢使用多字符常量,比如'abc'.这些有效地评估为基数256 - 这是一个非常方便的功能,但它会触发警告.它非常便于在case语句中切换四个字符串.

gcc compiler-warnings

37
推荐指数
3
解决办法
4万
查看次数

如何在g ++中抑制特定警告

我想抑制来自g ++的特定警告.我知道这面-Wno-XXX旗帜,但我正在寻找更具体的东西.我想要一些警告-Weffc++,但不是全部.像你可以用lint做的事情 - 禁用特定的消息.

在gcc中有内置的方法可以做到这一点吗?我是否必须编写包装脚本?

c++ gcc g++

30
推荐指数
2
解决办法
2万
查看次数

海湾合作委员会不尊重'pragma GCC诊断'来消除警告

我们最近启用-Wall了一个项目.当GCC处于4.7或更高(或Clang)时启用它,因为我们可以GCC diagnostic用来管理提升警告的输出.我们希望从源代码管理它们,而不是通过命令行参数.(我们不想污染命令行,或者要求库用户重新发现需要的内容).

下GCC 4.8和5.1,我们正在捕捉的用于GCC诊断块中禁用的警告-Wunused-variable,-Wunused-value,-Wunused-function-Wunknown-pragmas.两个GCC都接受-fopenmp,并且都定义_OPENMP为响应它,所以我相当肯定它我们永远不应该看到-Wunknown-pragmas响应#prgam omp ...(它禁用,但它不是未知).

g++ -DNDEBUG -g2 -O3 -Wall -march=native -pipe -c nbtheory.cpp
nbtheory.cpp:655:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
  #pragma omp parallel
 ^
nbtheory.cpp:656:0: warning: ignoring #pragma omp sections [-Wunknown-pragmas]
   #pragma omp sections
 ^
...
Run Code Online (Sandbox Code Playgroud)

在这种特殊情况下,文件nbtheroy.cpp具有以下保护措施以帮助管理该警告(仅显示相关部分,但您可以从GitHub链接中查看所有内容):

// Defines GCC_DIAGNOSTIC_AWARE if GCC 4.7 or above.
#include <misc.h> …
Run Code Online (Sandbox Code Playgroud)

c++ gcc pragma openmp compiler-warnings

25
推荐指数
1
解决办法
7645
查看次数