"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 철저한 C++ 코드 분석을 위해 어떤 g++ 경고 플래그를 사용해야 합니까?

철저한 C++ 코드 분석을 위해 어떤 g++ 경고 플래그를 사용해야 합니까?

2024년 12월 22일에 게시됨
검색:398

What g   Warning Flags Should I Use for Thorough C   Code Analysis?

g를 사용한 C 컴파일에 대한 철저하고 장황한 경고 플래그

Gcc는 개발자가 잠재적인 문제를 감지하는 데 도움이 되는 포괄적인 경고 플래그 세트를 제공합니다. 그들의 코드. C에서 철저하고 자세한 경고를 활성화하려면 다음 권장 사항을 고려하십시오.

필수 경고:

  • -pedantic: 엄격한 준수 C 언어 표준.
  • -Wall: 일반적으로 허용되는 모든 항목을 활성화합니다. warnings.
  • -Wextra: -Wall 이상으로 경고 범위를 확장합니다.
  • -Wcast-align: 잘못 정렬된 포인터 캐스트를 감지합니다.
  • -Wcast-qual: 포인터 유형 변경에 대해 경고합니다. qualifiers.
  • -Wctor-dtor-privacy: 클래스 생성자 및 소멸자 액세스 수정자와 관련된 문제를 강조합니다.
  • -Wdisabled-optimization: 코드 식별 최적화할 수 있지만 최적화할 수는 없습니다.
  • -Wformat=2: 형식 지정자를 개선합니다. 컴파일 중 처리.
  • -Winit-self: 변수가 자체적으로 다시 초기화되는 것을 방지합니다.
  • -Wlogical-op: 잠재적인 연산자 우선 순위를 감지합니다. 문제.
  • -Wmissing-declarations: 변수 선언 누락에 대해 경고하고 기능.
  • -Wmissing-include-dirs: 누락된 포함 디렉터리를 강조 표시합니다.
  • -Wnojust: 예외 처리 메커니즘을 권장합니다.
  • -Wold-style-cast: 잠재적인 코드 호환성 식별 문제.
  • -Woverloaded-virtual: 가상 메서드 오버로드에 대해 경고합니다.
  • -Wredundant-decls: 중복 선언을 지적합니다.
  • -Wshadow: 의도하지 않은 섀도잉을 방지합니다. 변수.
  • -Wsign-conversion: 가능한 기호 변환 오류를 감지합니다.
  • -Wsign-promo: 잠재적인 기호 승격 문제를 강조합니다.
  • -Wstrict-null-sentinel: null sentinel을 제어하여 코드 안전성 향상 값.
  • -Wstrict-overflow=5: 정수 오버플로 수준을 5개의 경고로 제한합니다.
  • -Wswitch-default: 포괄적인지 확인합니다. switch 문 처리.
  • -Wundef: 정의되지 않은 변수에 대해 경고하거나 매크로.
  • -Wno-unused: 더 중요한 문제에 집중할 수 있도록 사용되지 않는 변수 경고를 제외합니다.

선택 사항이지만 의심스러운 경고:

  • -Wdisabled-optimization: 최적이 아님을 나타낼 수 있음 코드이지만 반드시 오류는 아닙니다.
  • -Wfloat-equal: 안전한 동등 비교를 위해 잠재적으로 거짓양성을 유발할 수 있습니다.
  • -Wold-style-cast: 타사 라이브러리에 오탐지가 있을 수 있습니다.
  • -Wsign-conversion: 필요 오류를 방지하려면 데이터 유형에 주의를 기울이십시오.
  • -Wsign-promo: -Wsign-conversion.
  • -Wswitch-default와 유사한 고려 사항 : 스위치 문 사례를 명시적으로 처리하도록 강제하지만 지루할 수 있습니다.

경고 제외:

이러한 경고는 잠재적인 잘못된 긍정 또는 제한된 유용성으로 인해 생략되었습니다.

  • -Wabi: 다양한 소스의 바이너리를 컴파일해야 합니다.
  • -Waggregate-return: 암시적 데이터 유형을 나타낼 수 있음 Conversions.
  • -Wconversion: 무해한 암시적 변환에 대해 경고를 생성할 수 있습니다.
  • -Weffc : 관련 없는 경고로 인해 복잡해질 수 있습니다.
  • -Winline: 모든 인라인 방식에 적용되지 않을 수 있음 시나리오.
  • -Winvalid-pch: 미리 컴파일된 헤더를 사용하지 않는 프로젝트에는 적용되지 않습니다.
  • -Wmissing-format-attribute : 일반적으로 사용되지 않는 GNU 확장이 필요합니다.
  • -Wpended: 수동 최적화가 필요합니다. 클래스 레이아웃.
  • -Wstack-protector: 스택 보호를 위해 특정 컴파일러 플래그가 필요합니다.
  • -Wstrict-aliasing=3: 제안이 제한됨 낮은 수준에 비해 추가 경고가 있습니다.
  • -Wswitch-enum: 지나치게 제한적이며 모든 사용 사례에 적합하지는 않습니다.
  • -Wunsafe-loop-optimizations: 특정 시나리오에서 허위 경고를 생성할 수 있습니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3