16 Jun
2015
Posted in: 코드
By    No Comments

[플밍노트] 다시보는 assert, 2002


[플밍노트] 다시보는 assert, 2002
by 신영진(YoungJin Shin), codewiz at gmail.com, @codemaru, http://www.jiniya.net

다들 C언어를 처음 배울때 ASSERT라는 매크로를 배우게 된다.별로 의미없이 지나치게 되는 매크로의 하나인데, 사실 알고보면 저것 만큼 디버깅 시간을 줄여주는 매크로는 없다는 생각이 요즘 든다. 버그의 대부분의 근거는 함수 파라미터의 실수나 리턴값의 오류에 기인한다고 할 수 있다. 그런 버그를 원천 봉쇄할 수 있는 방법이 바로 위의 ASSERT 매크로를 사용하는 것이다. 예를 들어 아래 함수를 보도록 하자.

char next_char(char *str) { 
  return *str + 1; 
} 

위 함수의 입력값으로는 NULL포인터가 절대로 들어가서는 안된다. 그런 에러를 원천 봉쇄 할 수 있는 방법이 바로 아래와 같은 방법이다.

char next_char(char *str) { 
  ASSERT(str != NULL); 
  return *str + 1; 
} 

이제 만약 위의 코드에 NULL값이 입력값으로 들어오면 함수는 동작하지 않고 프로그램은 오류메세지를 출력하면서 종료될 것이다.


  • 트랙백 주소: http://www.jiniya.net/wp/archives/5014/trackback

관련 글