{
왜 초기화 해서 사용하는가? 에 대해서 나는 생각했을 때 두가지 이유가 떠올랐다. 하나, 버그의 퇴치, 하나, 가독성의 향상 이다. 17 항목에서 마법의 숫자가 가독성을 무척이나 떨어뜰 일 수 있다는 것을, 18항목에서 로컬 변수가 전역 변수보다 가독성이 높고 버그의 퇴치가 유용하다는 것을 이야기 한 것 으로 기억한다.
가독성의 원리부터 보자면, 눈에 보이면 좋은거다. ; ) 그 변수가 필요할 때, 어떤 값으로 초기화 보인다면, 무엇이 더 필요하랴. 가독성 완빵이다!
버그의 퇴치로 보자면, 컴파일러 마다 다르겠지만, 전역 변수가 아닌 변수들은 항상 쓰래기 값이 들어간다. MSVC 6.0 MSVC 2003 MSVC 2005 MSVC 2008, gcc 등(.. 그러고 보니 MSVC만 줄창 써왔네, 여담으로 회사에서 MSVC 2008 도 쓴다. 얼마나 좋은가? 완전 감동 )에서 변수의 선언시 초기화 하지 않으면, 쓰래기 값이 들어간다.
포인터인 경우 더 심각하게 0xcccccccc 로 초기화 된다.물론 대부분의 경우이다. ; )
KGCA 에 다녔을 때의 기억으론, 손세환 선생님께서 보여주신 기법인데, 변수의 초기화를 마법의 숫자(항목 17 참조) 로 주는 것 보단, 상수 변수를 먼저 초기화 해 두고, 그 상수 변수로 지역 변수를 초기화 하더라. (이걸 보고 간파한 "난 좀 대단", 이라고 1주일 전만 해도 느꼇을 수도 있지만, 회사에 출근하고 부터 기가 팍 죽었다. 회사는 레이드~ )
이 방법은 항목 17, 18, 19 의 조건에 모두 만족한다. ; ) 손세환 선생님 멋쟁이~(성격은 괴팍 하지만 ㅋㅋㅋ )
}
최근댓글