다들 C컴파일할 때 어떤 GCC플래그를 쓰시나요?

조회수 3479회

제가 아는건 -Wall, -std=XXX 정도입니다.. warning이나 warning을 error로 바꿔주는 플래그를 알고 싶은데 구글에 쳐보니까 다 영어라서 알아들을수가 없어요ㅠㅠ

warning이 아니더라도 다른 플래그도 알려주시면 좋구요

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    GCC 경고 flag

    플래그 설명
    -Wextra, -Wall 기본
    -Wfloat-equal 부동 소수점에 ==, != 연산하는 걸 경고해줍니다
    -Wundef if문 안에 초기화하지 않은 식별자가 있는 걸 경고해줍니다
    -Wpointer-arith void의 크기나 함수의 크기를 갖고 연산을 하는 경우 경고해줍니다
    -Wcast-align 포인터를 더 큰 타입으로 형변환 할 때 경고해줍니다(char *를 int *등으로 캐스팅 하는 경우)
    -Wstrict-prototypes 인자 타입을 정하지 않고 함수를 선언/정의하는 경우(old style) 경고해 줍니다
    -Wstrict-overflow=5 컴파일러가 signed오버플로우가 일어나지 않을거라 가정 하고 최적화를 진행하는 경우 경고해줍니다
    -Wwrite-strings constant 스트링을 non-const char* 포인터에 카피하는 경우 경고해줍니다
    -Waggregate-return struct나 union을 return하는 함수를 정의하거나, 호출 하는 경우 경고해줍니다
    -Wcast-qual 포인터를 형변환 할 때 기존 type qualifier가 사라지는 경우 경고해줍니다(const char*을 char*로 형변환)
    -Wswitch-default switch문에 default지정이 없는 경우 경고해줍니다
    -Wswitch-enum switch문이 enum타입의 인덱스를 받을 때 enum의 멤버 갯수와 case갯수가 맞지 않는 경우 경고해줍니다
    -Wconversion 묵시적으로 타입을 변환하는 상황에서 값이 바뀔 가능성이 있는 경우 경고해줍니다(int temp = 0.3 등)
    -Wunreachable-code 컴파일러가 절대 실행되지 않을 코드를 찾아낸 경우 경고해줍니다

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)