《gcc 5분 시리즈》 제13절: 컴파일러 최적화 옵션(4)―W

2497 단어 gcc직장w레저
제13절: 컴파일러 최적화 옵션(4)-W
 
우수한 프로그래머는 어떤 Warning도 소홀히 해서는 안 된다.
우수한 프로그래머가 쓴 코드는 error가 없을 뿐만 아니라 Warning도 없다.
    
첫 번째 코드를 먼저 보십시오:
 

  
  
  
  
  1. //return-type.cpp 
  2. int fun(){ 
  3. int main(){ 
  4.     fun(); 

 
아주 간단하죠?
오류가 있습니까?사실은 없어요.
컴파일하기: g++ return-type.cpp.아무 문제 없어요.
그러나 사실상fun함수에return문장이 없으면 무작위 값을 되돌릴 수 있습니다. 이런 무시는 심각한 오류를 초래할 수 있습니다.
우리는 gcc가 이런 문제를 만났을 때 우리에게 힌트를 줄 수 있기를 바란다.
다행히 gcc에서 - W 옵션을 제공했습니다.
다음과 같은 명령을 사용하여 컴파일합니다.
    g++ -Wreturn-type return-type.cpp
이것은 여전히 정상적으로 컴파일되고 실행 가능한 파일을 생성할 수 있지만, Warning 한 마디를 출력합니다.
return-type.cpp: In function ‘int fun()’:
return-type.cpp:3:1: warning: no return statement in function returning non-void
괜찮죠?
설명해 주세요. - W는 경고 출력을 열고 뒤에 경고를 받는 종류입니다.gcc는 경고를 여러 종류로 나눈다.return-type은 반환값 형식만 검사합니다.
    
하나 더:
 

  
  
  
  
  1. //uninitialized.cpp 
  2. int fun(){ 
  3.     int a; 
  4.     return a; 
  5. int main(){ 
  6.     fun(); 

 
정상적인 방식으로 컴파일하기: g++ uninitialized.cpp.아무 문제 없어요.
Unininitialized 종류의 경고를 열고 다음과 같이 컴파일합니다.
    g++ -Wuninitialized uninitialized.cpp
출력된 Warning은 다음과 같습니다.
uninitialized.cpp: In function ‘int fun()’:
uninitialized.cpp:4:12: warning: ‘a’ is used uninitialized in this function
    
그런데 종류가 그렇게 많은데 하나씩 추가하는 게 귀찮지 않을까요?
하하!gcc의 - W 옵션에는 all라는 종류가 있습니다.무슨 뜻일까요?모든 종류의 경고를 엽니다.편하죠?
    
이 절이 끝나다.

좋은 웹페이지 즐겨찾기