윈도우 프로그래밍을 하다 보면 "m_" 로 시작하는 변수들이 많은 것을 볼 수 있다. 이것은 윈도우 프로그래밍에서 약속된 멤버변수를 설정할 때 쓰는 접두어 이다. 물론 이 약속은 누구나 따라야 하는 것은 아니다. 프로젝트를 진행하는 팀이나 개발 회사마다 저마다의 규칙을 사용해 변수나 함수명을 지정해 사용하기 때문에 이를 따를수도 있고 아닐 수도 있다.

하지만 이렇다할 규칙이 없다면 자신만의 규칙보다는 흔히들 사용하는 규칙을 이용해 변수나 함수명을 사용하게 되면 다른 사람도 쉽게 소스를 이해할 수 있을 것이다. 자신만의 노하우라는 이름으로 code obfuscation 시키는 어리석은 자들에게는 별로 할말이 없다.

우선 흔히 헝가리안 표기법이라는 말을 들어봤을 것이다. 헝가리안 표기법 사용에 대한 찬반 의견이 많지만 딱히 규정된 명명 규칙을 사용하고 있지 않다면 헝가리안 표기법의 사용은 좋은 대안이 될 수 있다고 본다.

# 헝가리안 표기법
 접두어 의미 
 a 배열 
 b of f BOOL 형 변수(b : bool, f : flag)
 by BYTE (unsigned char) 형 변수 
 c 카운터로 사용되는 변수 
 ch char 형 변수
 cx, cy x, y 길이를 나타내기 위한 변수 
 d 날짜형 변수 
 dbl double 형 변수 
 h 핸들(HANDLE)형 변수 
 n or i int 형 변수 
 l long 형 변수 
 p 포인터 변수
 lp long 형 포인터 변수(32비트에서는 일반 포인터 변수와 같음)
 s 문자열 
 sz 널(NULL) 문자로 끝나는 문자열 
 u unsigned int 형 변수 
 w WORD(unsigned short) 형 변수 
 dw DWORD(unsinged long) 형 변수
 str CString 형 변수 


# 윈도우 프로그래밍에서 정의된 상수
 상수 정의된 값 
 TRUE
 FALSE


# 윈도우 프로그래밍에서 정의된 데이터 형
 데이터 형 의미 
 BOOL  논리형, TRUE or FALSE 값만 가짐
 BYTE  unsigned char (8bit)
 DWORD  unsigned long (32bit)
 DWORDLONG  unsigned double (64bit)
 FLOAT  float
 LONG  signed long (32bit)
 LONGLONG  signed double (64bit)
 LPARAM  32bit 메시지 파라미터
 LPCSTR  널 문자로 끝나는 윈도우 문자열 상수 포인터
 LPCTSTR  널 문자로 끝나는 유니코드 또는 윈도우 문자열 상수 포인터
 LPSTR  널 문자로 끝나는 윈도우 문자열 포인터
 LPTSTR  널 문자로 끝나는 유니코드 또는 윈도우 문자열 포인터
 TCHAR  유니코드 또는 윈도우 문자 (프로젝트 설정에 의존적)
 UINT  unsigned int (32bit)
 WORD  unsigned short (16bit)
 WPARAM  16bit 메지시 파라미터

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Proneer

TRACKBACK http://proneer.tistory.com/trackback/385 관련글 쓰기

댓글을 달아 주세요

  1. jiyoung

    이용약관위배로 관리자 삭제된 댓글입니다.

    2011.03.08 13:51 [ ADDR : EDIT/ DEL : REPLY ]
    • 초기 MS에서 만들었는데 만든 사람이 헝가리 사람이어서 자신의 고향을 따서 지은 것으로 압니다.

      2011.03.31 23:34 신고 [ ADDR : EDIT/ DEL ]
  2. 쁨 환희로 득할

    2012.03.26 14:09 신고 [ ADDR : EDIT/ DEL : REPLY ]


티스토리 툴바