윈도우 프로그래밍을 하다 보면 "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 | 1 |
| FALSE | 0 |
# 윈도우 프로그래밍에서 정의된 데이터 형
| 데이터 형 | 의미 |
| 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 메지시 파라미터 |
'Basic Security > _Programming' 카테고리의 다른 글
| 헝가리안 표기법 (2) | 2010/09/17 |
|---|---|
| [MFC] 타이틀바에 "제목 없음" 제거 (0) | 2010/09/16 |
| [MFC] 스크롤바 제거 (0) | 2009/11/04 |
| [MFC] CTreeCtrl 자식 아이템 체크/해제 (0) | 2009/10/13 |
| [MFC] 지원되지 않는 작업을 시도했습니다. (0) | 2009/10/13 |
| Eclipse 실행 오류 (An error has occurred. See the log file...) (0) | 2009/09/23 |
댓글을 달아 주세요
헝가리안 표기법을 어떻게 시작하게 된 건가요?
2011/03/08 13:51 [ ADDR : EDIT/ DEL : REPLY ]초기 MS에서 만들었는데 만든 사람이 헝가리 사람이어서 자신의 고향을 따서 지은 것으로 압니다.
2011/03/31 23:34 [ ADDR : EDIT/ DEL ]