63得票4回答
有没有GCC选项可以警告写`this-field`而不是`this->field`?

这段代码(包含恶性漏洞)在GCC编译时没有任何警告。但是,当然,它不会按照开发者的预期工作(我的预期)。#include <iostream> struct A { bool b; void set(bool b_) { this->b = b_; } ...

61得票3回答
警告:函数'exit'的隐式声明

这是我的警告。implicit declaration of function 'exit' 我该如何移除它。 我正在使用Linux和GCC编译器。

59得票5回答
如何规避GCC中的格式截断警告?

我收到了以下gcc格式截断警告:test.c:8:33: warning: ‘/input’ directive output may be truncated writing 6 bytes into a region of size between 1 and 20 [-Wformat-t...

52得票6回答
有没有一种方法可以提醒未使用的函数?

我想在代码库中找到未使用的函数 - 包括跨编译单元。 我正在使用gcc作为我的编译器。 这是一个例子: foo.c(假设适当的foo.h):void foo() { .... } void bar() { .... } main.c:#include <stdio.h&...

52得票4回答
如何在GCC中消除已弃用函数的已弃用警告?

实现废弃警告的一种方法是在调用废弃函数时产生警告,除非您从已废弃的上下文调用。这样,旧代码可以调用旧代码而不会产生只是噪音的警告。 这是一个合理的想法,并反映在我在OS X上看到的GCC 4.2(1)和Clang 4.0(2)以及Ubuntu上的Clang 3.0(3)的实现中。 (1):i...

49得票3回答
如何在if-else语句中使用C++20的likely/unlikely属性

这个问题涉及到C++20的[[likely]]/[[unlikely]]特性,而不是编译器定义的宏。 这份文档(cppreference)只提供了将它们应用于switch-case语句的示例。这个switch-case示例在我的编译器(g++-7.2)上完美编译,所以我认为编译器实现了这个特...

45得票4回答
为什么使用未初始化而不是越界?

在下面的代码中,为什么b[9]未初始化而不是越界? #include <stdio.h> int main(void) { char b[] = {'N', 'i', 'c', 'e', ' ', 'y', 'o', 'u', '!'}; printf("b[9...

40得票5回答
如何把这个GCC警告变成错误?

我从GCC得到了如下警告: 警告:不能通过“...”传递非POD类型的对象“class Something”,调用会在运行时终止 这是一个相当致命的警告,特别是由于它调用了abort。为什么不把它作为错误?我想让它成为一个错误,但我有以下疑问: 如何将特定的警告信息变为错误? 这是哪种警...

35得票1回答
为什么gcc会对long long类型发出警告?

-Wlong-long 是 GCC 的一个警告选项,用于当编译器遇到长长类型时发出警告。 参考 gcc 手册:-Wlong-long Warn if long long type is used. This is enabled by either -Wpedantic o...

35得票4回答
警告:不同大小的整数与指针之间进行转换

我正在学习Pthreads。我的代码以我想要的方式执行,我能够使用它。但是在编译时会给出警告。 我使用以下方式进行编译:gcc test.c -o test -pthread 使用GCC 4.8.1编译时,我收到了警告信息。test.c: In function ‘main’: test.c...