>  기사  >  백엔드 개발  >  코드 품질을 향상하고 잠재적인 문제를 감지하기 위한 C/C에 대한 최적의 컴파일러 경고 설정은 무엇입니까?

코드 품질을 향상하고 잠재적인 문제를 감지하기 위한 C/C에 대한 최적의 컴파일러 경고 설정은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-04 02:06:02189검색

What are the optimal compiler warning settings for C/C   to enhance code quality and detect potential issues?

C/C에 대한 최적의 컴파일러 경고 설정

적절한 컴파일러 경고 수준을 선택하면 잠재적인 문제를 식별하여 코드 품질이 향상됩니다. 다음은 다양한 컴파일러에 권장되는 수준입니다.

gcc 및 g :

  • '-Wall'은 논리적 우선 순위 규칙 및 유형 검사에 대한 경고를 포함하여 광범위한 경고를 활성화합니다. .
  • '-Werror'는 경고를 오류로 승격하지만 메모 작성에 사용되는 '#warning' 매크로를 비활성화해야 할 수도 있습니다.

Sun CC:

  • '-xarch=v9'는 더욱 엄격한 경고 수준을 활성화하여 이식성 및 효율성 문제를 해결합니다.

aCC(HPUX):

  • '-A'는 버퍼 오버플로, 널 포인터 역참조 및 정의되지 않은 동작에 대한 추가 검사를 활성화합니다.

Visual Studio:

  • '레벨 4'('/W4')는 초기화되지 않은 변수 및 사용되지 않는 코드에 대한 정보를 포함하여 포괄적인 경고를 제공합니다.

Intel:

  • '-Wall'은 메모리 안전성과 이식성에 대한 추가 검사와 함께 gcc의 '-Wall'과 유사한 경고를 발생시킵니다.

Extra-Paranoid C 플래그:

매우 중요한 코드의 경우 포괄적인 경고 플래그 세트를 사용할 수 있습니다.

-g -O -Wall -Weffc++ -pedantic  \
-pedantic-errors -Wextra -Waggregate-return -Wcast-align \
-Wcast-qual  -Wchar-subscripts  -Wcomment -Wconversion \
-Wdisabled-optimization \
-Werror -Wfloat-equal  -Wformat  -Wformat=2 \
-Wformat-nonliteral -Wformat-security  \
-Wformat-y2k \
-Wimplicit  -Wimport  -Winit-self  -Winline \
-Winvalid-pch   \
-Wunsafe-loop-optimizations  -Wlong-long -Wmissing-braces \
-Wmissing-field-initializers -Wmissing-format-attribute   \
-Wmissing-include-dirs -Wmissing-noreturn \
-Wpacked  -Wpadded -Wparentheses  -Wpointer-arith \
-Wredundant-decls -Wreturn-type \
-Wsequence-point  -Wshadow -Wsign-compare  -Wstack-protector \
-Wstrict-aliasing -Wstrict-aliasing=2 -Wswitch  -Wswitch-default \
-Wswitch-enum -Wtrigraphs  -Wuninitialized \
-Wunknown-pragmas  -Wunreachable-code -Wunused \
-Wunused-function  -Wunused-label  -Wunused-parameter \
-Wunused-value  -Wunused-variable  -Wvariadic-macros \
-Wvolatile-register-var  -Wwrite-strings

이러한 설정을 프로젝트 요구 사항 및 타사 라이브러리 호환성에 맞게 조정하세요.

위 내용은 코드 품질을 향상하고 잠재적인 문제를 감지하기 위한 C/C에 대한 최적의 컴파일러 경고 설정은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.