- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
This Question是关于让 gcc 编译器在您输入错误时发出警告并用自身初始化变量。
int f()
{
int i = i;
return i;
}
原来你需要 -Winit-self
flag除了-Wuninitialized
:
-Winit-self
(C, C++, Objective-C and Objective-C++ only) Warn about uninitialized variables which are initialized with themselves. Note this option can only be used with the-Wuninitialized
option, which in turn only works with-O1
and above.
我的问题是:为什么这不是 -Wuninitialized
的默认行为?在什么用例中,您想警告未初始化的变量,而不是自初始化的变量,它们同样麻烦?
最佳答案
看起来像这个错误报告Warn about member variables initialized with itself对此有解释(强调我的):
I agree with Andrew, the a(a) mistake should always warn, it should be independent of -Winit-self, which exists so that -Wuninitialized doesn't warn about the common (but questionable) practice of self-initializing automatic variables to silence warnings.
它可能被称为有问题的做法,因为它是 undefined behavior in C++ to self initialize an automatic variable错误报告是 C++ 错误报告。
关于c - 为什么 -Winit-self 与 -Wuninitialized 分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22965414/
我在 C++ 上进行内存缓存模拟,经过大量编码后我收到了这个错误: g++ main.cpp blocoMemoria.cpp endereco.cpp instrucao.cpp mmu.cpp m
#include #include #include int main() { struct tm tm ; //memset(&tm, 0, sizeof(struct tm)); strpt
考虑以下代码: PROGRAM TEST IMPLICIT NONE REAL:: noninit noninit = noninit + 1 END PROGRAM TEST 如果
gcc 版本 - gcc (Ubuntu 4.8.4-2ubuntu1~14.04.1) 4.8.4 使用 -Wall -Wuninitialized 编译以下代码会按预期抛出警告警告:“test”在
在我激活所有类型的警告后,编译器提示这一点: 对于 MyApp_Prefix.pch,编译器表示: warning: -Wuninitialized is not supported without
我想在我的 gnatcheck 报告 中包含未初始化的变量,但此警告的格式与以下格式不兼容: +RWarnings:xxxx(带有 xxxx 的不同警告开关) 我尝试像其他人一样编写此编程规则:+RW
class Foo { public: const int x; }; class Bar { private: const int x; }; 输出:
我在使用 gcc-4.7 (Ubuntu/Linaro 4.7.2-11precise2) 4.7.2 时遇到了一个非常奇怪的问题。我无法在没有警告的情况下编译以下有效代码: extern void
我正在尝试打开 this file在函数 openFile 中并将其传递给函数 commonPasswd,但是当我尝试编译时收到警告。 warning: ‘fp’ is used uninitiali
以下程序使用 -O0 编译时没有警告: #include struct Foo { int const& x_; inline operator bool() const { return
This Question是关于让 gcc 编译器在您输入错误时发出警告并用自身初始化变量。 int f() { int i = i; retu
我是一名优秀的程序员,十分优秀!