프로그래밍 언어에서 변수 및 함수의 인자 이름 앞에 데이터 타입을 명시하는 코딩 규칙이다. 찰스 시모니(Charles Simonyi) 가 마이크로소프트의 개발 책임자로 있을 때 제안했다.
80년대 당시에는 IDE라는게 다들 부실했기 때문에 물론 볼랜드의 Turbo C 같은 예외도 있었지만 이 규칙이 엄청난 센세이션을 불러 일으켰다. 하지만 지금은 MS도 공식 가이드라인에서 사용하지 말 것을 권고하고 있다. 헝가리안 표기법이라는 명칭은 제안자인 찰스 시모니가 헝가리인이라서 붙은 것이다.
타입 | Prefix | 예제 |
bool | b | bool bRunning |
int | n | int nCount |
char | ch | char chCode |
float | f | float fRate |
double | dbl | double dblPi |
'\0'으로 끝나는 char 배열 | sz | char szName[32] |
일반 배열 | a | int aAges[10] |
포인터 | p | void* pUserData |
구조체 | st | ST_RECT stRect |
구조체포인터 | pst | PST_RECT pstRect |
핸들 | h | HANDLE hWnd |
함수포인터 | pfn | typedef void (*PFN_ONCOMPLETE)(); PFN_ONCOMPLETE pfnOnComplete; |
enum | E/e | typedef enum { eTYPE_VALUE1, eTYPE_VALUE2 } ETYPE; enum 형은 대문자로 E enum 값은 소문자 e |
클래스 | C | class CHuman |
스코프(Scope) | Prefix | 예제 |
로컬변수 | 없음 | void Dummy() { int count; } |
함수 파라미터 | a_ | void Dummy(int a_count); |
멤버변수 | m_ | class CFoo { int m_nCount; } |
스택틱변수 | s_ | 활용성이 떨어지므로 명시하지 않음 클래스에 속한 static 변수는 m_ 로 통합하여 사용하는 것이 사용하기 쉬움 |
전역변수 | g_ | 전역 변수 사용을 권장 하지 않음 |
위에서 제시한 두 가지 구분에 의한 표기법이 정답이니 반드시 사용하라는 의미는 아니다. 언급된 표기법은 헝가리안 노테이션에 근간을 두고 있다. - 패턴 그리고 객체지향적 코딩의 법칙/문우식 -
코딩 노하우 (0) | 2018.09.05 |
---|---|
정리할 시간이 없다. (0) | 2018.09.05 |
프로그래머를 위한 성공적인 이력서 쓰기 10계명 (0) | 2018.09.05 |
UI 개발자의 RISK 및 경력 관리 (0) | 2018.09.05 |
변수 prefix (0) | 2016.01.26 |
댓글 영역