{


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


 }

'책 정리 > C++ Coding Standards : C++ 코딩의 정석' 카테고리의 다른 글

항목 24 : 내부 #include 가드를 사용하라. 외부 #include 가드를 써서는 안 된다. ( Always write internal #include guards. Never write external #include guards. )  (0) 2009.02.24
항목 23 : 헤더 파일은 충분히 완성된 형태로 만들어라. ( Make header files self-sufficient. )  (0) 2009.02.24
항목 22 : 정의의 의존성과 순환 의존성을 최소화 하라. ( Minimize definitional dependencies. Avoid cyclic dependencies. )  (0) 2009.02.24
항목 21 : 컴파일 단위 사이의 초기화 의존성을 없애라. ( Avoid initialization dependencies across compilation units. )  (0) 2009.02.23
항목 20 : 너무 긴 함수와 많은 중첩구조는 피하라. ( Avoid long functions. Avoid deep nesting. )  (0) 2009.02.23
항목 19 : 변수는 항상 초기화하여 사용하라. ( Always initialize variables. )  (0) 2009.02.23
항목 18 : 가능하면 로컬 변수를 선언하여 사용하라. ( Declare variables as locally as possible. )  (0) 2009.02.23
항목 17 : 마법의 숫자는 쓰지 말라. ( Avoid magic numbers. )  (0) 2009.02.23
항목 16 : 매크로 사용을 자제하라.( Avoid macros. )  (0) 2009.02.21
항목 15 : const를 사용하라. ( Use const proactively. )  (0) 2009.02.21
항목 14 : 런타임 오류보다는 컴파일이나 링크 타임 오류가 낫다. ( Prefer compile- and link-time errors to run-time errors. )  (0) 2009.02.19
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기

댓글을 달아 주세요

">