를 참조하십시오. 이 두 가지 모두를 켜는 -Wall
옵션의 일부이며 다른 많은 경고 (-Wxxx
옵션은 경고와 관련이 있습니다).
gcc에 대한 경고 옵션에 대한 전체 설명서는 gcc 설명서의 Options to Request or Suppress Warnings에서 읽을 수 있습니다.
-Wextra
(단독으로 사용하거나 -Wall
과 함께 사용하는 경우)을 사용할 수도 있습니다. -Wextra
도 -Wuninitialized
을 사용할 수 있지만, 항상 -Wall
으로 설정되는 것은 아니며, 내가보고 싶은 것 (-Wunused-parameter
및 -Wunused-but-set-parameter
과 같은 것)이 있습니다.이 코드에만 국한되지는 않습니다. 했다 ... 나는이 gcc가이 기능을 사용하여 오류를 자극 수없는 것 http://gcc.godbolt.org 볼 수 있습니다 (참 "말했다"는 거기에)
.
는 특히 -Wmaybe-uninitialized
#include <iostream>
using namespace std;
int main() {
int a, b;
int x, y, z;
// warning: variable ‘y’ set but not used [-Wunused-but-set-variable]
cin >> a;
while (a>0) b++;
switch(a) {
case 1: x = 1; y = 1; z++; break;
// warning: ‘z’ may be used uninitialized in this function [-Wmaybe-uninitialized]
case 2: x = 4; y = 2; break;
case 3: x = 5; y = 3;
}
cout << a;
cout << b;
cout << x;
}
이에 대한 문서에 설명 된 일부 코드를 확장하는 것은 사용되지 않는 및 일체화 된 경고의 번호를 자극하기위한 시도이다. 오류를 생성하기 위해 z
변수를 가져올 수 있었지만 어떤 이유로 인해 루프가 gcc (gcc 4.9.0을 사용하여 테스트 됨)에서 오류 또는 경고를 생성하지 않는 동안 b++
이 발생했습니다.
연타 버전 3.4.1은, 그러나, 모두 b
및 z
그리고 잠시 -Wall
에 대한 명령 행 옵션을 사용하여 경고를 생성 않습니다 및 -Wextra
은이어야합니다. 어떤 이유로 gcc 4.9.0에서이 특정 코드 조각에 대해 원하는 경고를 내지 못합니다.
'g ++ -Wall -Wextra'를 시도 했습니까? –
내 테스트 결과 엄청난 경고 그룹 (-Wall, -Wextra, -pedantic)을 가진 GCC의 경고가 표시되지 않으며 Clang은 경고를 표시합니다. – chris
컴파일 플래그 ie를 추가 할 수 있습니다. -벽. http : // stackoverflow.com/questions/11714827/글자 그대로 -gcc-warnings 모두 – risque