Charles Simonyi is credited with first discussing Hungarian Notation. It is a variable naming convention that includes C++ information about the variable in its name (such as data type, whether it is a reference variable or a constant variable, etc). Every company and programmer seems to have their own flavor of Hungarian Notation. The following is just what we thought seemed easy for beginning students to understand.
| Prefix |
Type |
Example |
| b
|
boolean
|
bool bStillGoing;
|
| c
|
character
|
char cLetterGrade;
|
| str
|
C++ String
|
string strFirstName;
|
| si
|
short integer
|
short siChairs;
|
| i
|
integer
|
int iCars;
|
| li
|
long integer
|
long liStars;
|
| f
|
floating point
|
float fPercent;
|
| d
|
double-precision floating point
|
double dMiles;
|
| ld
|
long double-precision floating point
|
long double ldLightYears;
|
| sz
|
Old-Style Null Terminated String
|
char szName[NAME_LEN];
|
| if
|
Input File Stream
|
ifstream ifNameFile;
|
| is
|
Input Stream
|
void fct(istream &risIn);
|
| of
|
Output File Stream
|
ofstream ofNameFile;
|
| os
|
Output Stream
|
void fct(ostream &rosIn);
|
| S
|
declaring a struct
|
struct SPoint {
|
| C
|
declaring a class
|
class CPerson {
|
| struct name or abbrev
|
declaring an instance of a struct
|
SPoint pointLeft; SPoint ptLeft; // or abbrev. (be consistent)
|
| class name or abbrev
|
declaring an instance of a class
|
CPerson personFound; CPerson perFound; // or abbrev. (be consistent) |
The following table contains letters that go before the above prefixes.
| Pre-prefix |
Type |
Example |
| u
|
unsigned
|
unsigned short usiStudents;
|
| k
|
constant formal parameter
|
void fct(const long kliGalaxies)
|
| r
|
reference formal parameter
|
void fct(long &rliGalaxies)
|
| s
|
static
|
static char scChoice;
|
| rg
|
array (stands for range)
|
float rgfTemp[MAX_TEMP];
|
| m_
|
member variable of a struct or class
|
char m_cLetterGrade;
|
| p
|
pointer to a single thing
|
char *pcGrade;
|
| prg
|
dynamically allocated array
|
char *prgcGrades; |