잊어 버린 신고서에 대해 gcc 경고를 사용하려면 어떻게해야합니까?잊혀진 return 문에 대해 gcc 경고를 설정하는 방법은 무엇입니까?
는 다음과 같은 경우에 저를 경고하도록되어 :
int foo() {
std::cout << "haha";
}
나는 -Wall
가 경고 것을집니다 알고 있지만, 너무 많은 경고를 할 수 있습니다.
잊어 버린 신고서에 대해 gcc 경고를 사용하려면 어떻게해야합니까?잊혀진 return 문에 대해 gcc 경고를 설정하는 방법은 무엇입니까?
는 다음과 같은 경우에 저를 경고하도록되어 :
int foo() {
std::cout << "haha";
}
나는 -Wall
가 경고 것을집니다 알고 있지만, 너무 많은 경고를 할 수 있습니다.
GCC의 online documentation에 따르면, -Wall
이 켜집니다 : 그 외
-Waddress
-Warray-bounds (only with -O2)
-Wc++0x-compat
-Wchar-subscripts
-Wenum-compare (in C/Objc; this is on by default in C++)
-Wimplicit-int (C and Objective-C only)
-Wimplicit-function-declaration (C and Objective-C only)
-Wcomment
-Wformat
-Wmain (only for C/ObjC and unless -ffreestanding)
-Wmissing-braces
-Wnonnull
-Wparentheses
-Wpointer-sign
-Wreorder
-Wreturn-type
-Wsequence-point
-Wsign-compare (only in C++)
-Wstrict-aliasing
-Wstrict-overflow=1
-Wswitch
-Wtrigraphs
-Wuninitialized
-Wunknown-pragmas
-Wunused-function
-Wunused-label
-Wunused-value
-Wunused-variable
-Wvolatile-register-var
, -Wreturn-type
이 트릭을 할 것처럼 보인다 :
함수가 리턴 유형으로 정의 될 때마다 경고 기본값은 int입니다. 또한 은 반환 유형이 void가 아닌 함수에서 반환 값이없는 모든 return 문에 대해 경고합니다 (함수 본문의 끝 부분은 값없이 반환되는 것으로 간주됩니다) 및 반환 유형이 void 인 함수입니다.
그러나 -Wall
을 켜면 코드가 너무 많은 경고를 받으면 코드를 수정하는 것이 좋습니다.
+1! –
항상 사용
의 gcc -g -ansi -pedantic -Wall -o
당신이 -Wextra/-ansi/-pedantic을 시도 했습니까? – halfdan
'-Wall'은 너무 많은 다른 경고를 가능하게합니까? 그게 처음입니다. – GManNickG
- 너무 많은 기능을 켜 놓은 경우, 대안은 코딩 스타일을 따르지 않는 특정 코드를 전환하는 것입니다. 내가 가지고있는 코드를 듣는 것이 궁금 할 지 모르지만 코드의 문제에 대한 귀중한 피드백을주지는 않습니다. –