API

함수,변수 표기법(헝가리안)

디버그정 2008. 8. 15. 08:30

가급적 지켜주면 가독성이 좋다.
그러나 반복해서 자주 쓰이는 것은 간단한 소문자를 써서 간략하게 나타내는 게
좋을 듯 싶다.
가령 루프문에서 포인터는 그냥 p나 ptr로 표기하는 게
piNum이런 식으로 표기하는 것보다 나은 듯 하다.


함수,변수 표기법

=========================================

a                배열
b또는f       BOOL형 변수(b=bool, f=flag)
by              BYTE형 변수
c                카운터로 사용되는 변수
ch             char형 변수
cx, cy       x, y길이를 나타내기 위해 사용 되는 변수
d               날짜형 변수
dbl            더블 형 변수
h               핸들 형 변수
n, i            int 형 변수
l                long형 변수
p               포인터변수
lp              long형 포인터 변수
s               문자열
sz             NULL 문자로 끝나는 문자열
u               unsigned int 형 변수
w               WORD 형 변수
dw             DWORD 형 변수
str             CString 형 변수
fn              function

------------------------------------------------------
Prefix        Type              Description                           Example 
   b             bool         any boolean type                    bool bTrue; 
   c             char           character type                     char cLetter; 
   i                int            integer for index                     int iCars; 
   n               int           number, quantity                     int nNum; 
   l               long                 long type                       long lDistance; 
   u         unsigned   unsigned type(4byte)     unsigned uPercent 
   w            WORD      unsigned word(2byte)            WORD wCnt 
  dw          DWORD    unsigned double word(4byte) DWORD dwLength 
   d            double     double floating point           double dPercent; 
   f               float              floating point                     float fPercent; 
   s             static           a static variable           static short ssChoice; 
  rg              array           stands for range             float rgfTemp[16]; 
  p                  *                   any pointer                          int *piAddr; 
  sz                *      null terminated string of characters   char szText[16];  
 pfn               *               function pointer             int (*pifnFunc1)(int x, int y);  
  t               struct         a user defined type                        ...  
  e               enum    variable which takes enumerated values  ...  
  E               enum          Enumerated type                           ...  
  g_            Global             Global Variable                String *g_psBuffer;  
  m_          Member   class private member         variable int m_iMember; 
  k     constant formal parameter ...                  void vFunc(const long klGalaxies)  
  r      reference formal parameter ...                  void vFunc(long &rlGalaxies) 
 str              String         string class(C++)                   String strName;  
 prg               ...         dynamically allocated array         char *prgGrades; 
   h            handle          handle to something                      hMenu 
  x/y              ...                  used as size                          int xWitdth, yHeight; 

Format
x_xXxxxxxx
0123456789

0 : 변수의 위치를 지정한다. g(전역변수), m(멤버변수), 없음(지역변수)
1 : 0 위치에 g 나 m 을 지정한 경우 _ 을 기술한다.
2 : 자료형의 종류를 나타낸다.(클래스 이름에 대해서는 관습적으로 자음축약형을 사용한다._
3 ~ : 변수의 의미 있는 이름을 기술하며, 3 위치는 대문자를 사용한다.

         변수 이름이 너무 긴 경우 자음만을 기술한다.


Windows Resources
Resource Type                 Prefix            Example
   Menu Item Resource      ID_           ID_EDIT_CUT
   String                                 IDS_         IDS_STRING1
   Dialog Control                  IDC_         IDC_EDITBOX
     ICON                                 IDI_           IDI_MAINICON
   Cursor                       IDC_CURSOR_  IDC_CURSOR_ARROW
   Dialog Box                        IDD_          IDD_ABOUTBOX

Accelerator                        IDR_           IDR_ACCELERATOR
   Bitmap                              IDB_           IDC_ARROW

---------------------------------------------------------------

막상 코딩을 시작하면 생각없이 지나갔던 부분...