다들 C컴파일할 때 어떤 GCC플래그를 쓰시나요?
조회수 3479회
제가 아는건 -Wall, -std=XXX 정도입니다.. warning이나 warning을 error로 바꿔주는 플래그를 알고 싶은데 구글에 쳐보니까 다 영어라서 알아들을수가 없어요ㅠㅠ
warning이 아니더라도 다른 플래그도 알려주시면 좋구요
1 답변
-
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 컴파일러가 절대 실행되지 않을 코드를 찾아낸 경우 경고해줍니다
댓글 입력